【发布时间】:2012-03-18 14:48:09
【问题描述】:
我想我已经在这里完成了我的功课。
我希望我的应用代理成为我的UITabBarController 的代理。
使用 IB,我已将 UITabBarController 的代表连接到我的应用程序代表。
App Delegate 头文件是:
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
我尝试实现的委托方法是:
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
NSLog(@"shouldSelectViewController called.");
// do some stuff with viewController
return YES;
}
我的应用程序委托有一个连接到 IB 的 UITabBarController 的出口。当我这样做时:
NSLog(@"tab bar controller delegate is %@", self.tabBarController.delegate);
我得到了一个很好的结果,例如tab bar controller delegate is <MyAppDelegate: 0x6e86a30>。
我错过了什么?
【问题讨论】:
-
我想说的一件事,标签栏控制器调用这个(shouldSelectViewController)方法来响应用户点击标签栏项目。只需单击任何标签栏项目以检查该方法。
-
感谢您的提示。是的,这就是我正在做的。但是,该方法仍未被调用。
-
我正在尝试你的代码,因为你给它的代码对我有用
-
@galacticfury 在窗口中检查您的代理连接。
-
我在 IB 中的代理连接似乎是正确的。我真的很困惑,因为据我所知,我的设置与示例 Apple 项目 Tabster 相同。 Tabster 还使用 UITabBarController 委托方法,并且正在调用它。但我的不是。 :-(
标签: iphone ios cocoa-touch delegates uitabbarcontroller