Tabbar委托没有被调用

时间:2012-11-23 06:27:46

标签: iphone xcode4.2

我正在尝试在每次按下标签栏按钮时捕获该事件,并在UITabBarControllerDelegate以下函数中将AppDelegate.h添加到AppDelegate.m文件但未调用它。我还将tabBarController代表连接到IB的第一响应者

有人可以帮我解决这个问题吗?

// AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

// AppDelegate.m

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{

   NSLog(@"Touched Tab\n");

}

enter image description here

3 个答案:

答案 0 :(得分:0)

如果我理解你的图形,你的“代表”不应该是“第一响应者”(谁知道设置的是什么;它可能是视图控制器,也可能是键盘或基本上它是设置的任何对象成为第一个响应者......)。

相反,您需要将委托设置为您编码的委托方法实际存在的对象或类(您的视图控制器?)。看起来应该将委托设置为“AppDelegate”对象。

答案 1 :(得分:0)

enter image description here

请将您的代表与AppDelegate绑定,而不是与FirstResponder绑定。

答案 2 :(得分:0)

以下功能需要的只是两行才能使委托工作。希望它为某人节省时间和挫折。

// AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

  self.m_pTabBarController = (UITabBarController *)self.window.rootViewController;
  self.m_pTabBarController.delegate = self;
  return YES;                            

}

// AppDelegate.h

@interface ftAppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>{
IBOutlet UITabBarController *m_pTabBarController;

}

@property(强大的,非原子的)UIWindow *窗口;

@property(nonatomic,retain)IBOutlet UITabBarController * m_pTabBarController;

@end