0

我试图在每次按下标签栏按钮时捕获事件,并在下面的函数中添加 UITabBarControllerDelegateAppDelegate.h文件AppDelegate.m但它没有被调用。我还将tabBarController代表连接到 IB 中的 First Responder

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

// AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

// AppDelegate.m

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

   NSLog(@"Touched Tab\n");

}

在此处输入图像描述

4

3 回答 3

0

如果我正确理解了您的图形,则您的“代表”不应该是“第一响应者”(谁知道设置为什么;它可能是视图控制器,也可能是键盘,或者基本上是设置为急救人员... )。

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

于 2012-11-23T06:29:24.717 回答
0

在此处输入图像描述

请使用 AppDelegate 而不是 FirstResponder 绑定您的委托。

于 2012-11-23T06:32:04.477 回答
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 (strong, nonatomic) UIWindow *window;

@property(非原子,保留)IBOutlet UITabBarController *m_pTabBarController;

@结尾

于 2012-11-27T17:08:12.367 回答