tabBarController:shouldSelectViewController:设置委托时不调用

Dav*_*Nix 3 iphone cocoa-touch delegates uitabbarcontroller ios

我想我已经完成了我的作业.

我希望我的app委托成为我的代表UITabBarController.

使用IB,我已将UITabBarController代理连接到我的应用程序代表.

App Delegate Header文件是:

@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
Run Code Online (Sandbox Code Playgroud)

我试图实现的委托方法是:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    NSLog(@"shouldSelectViewController called.");
    // do some stuff with viewController
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我的应用代表有一个出口到UITabBarControllerIB的连接.当我这样做:

NSLog(@"tab bar controller delegate is %@", self.tabBarController.delegate);
Run Code Online (Sandbox Code Playgroud)

我得到了一个很好的结果,比如tab bar controller delegate is <MyAppDelegate: 0x6e86a30>.

我错过了什么?

小智 5

只需编写此代码

self.tabBarController.delegate = self;
Run Code Online (Sandbox Code Playgroud)