0

ヘッダーファイル:

#import <UIKit/UIKit.h>

@interface PFXTabControllerViewController : UITabBarController <UITabBarControllerDelegate>
@end

実装ファイル:

#import "PFXTabControllerViewController.h"

@interface PFXTabControllerViewController ()
@end

@implementation PFXTabControllerViewController

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    NSLog(@"tabBar didSelectItem");
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    NSLog(@"tabBarController didSelectViewController");
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tabBarController.delegate = self; // Tried it both with and without this.
}

ショーはUITabBarcontrollerタブバーでうまく表示されます。タブをクリックすると起動しますが、処理する必要のあるイベントは起動didSelectItemしません。didSelectViewControllerは、のUITabBarcontrollerさまざまなサブクラスを読み込んで表示していUIViewControllerます。

UPDATEself.tabBarController.delegate = selfその行を動作するように変更するself.delegate = selfと、両方が起動します。なぜこれが必要なのかわかりません。設定self.delegate = selfは...ばかげているようです。何か案は?

4

1 に答える 1

0

次のようにヘッダーを変更するだけです:

#import <UIKit/UIKit.h>

@interface PFXTabControllerViewController : **UIViewController** <UITabBarControllerDelegate>
@end
于 2013-02-02T03:31:43.923 に答える