Как реализовать didSelectViewController
Я хочу поймать событие, когда кто-то переключается между вкладками. У меня есть следующие две функции в моем файле appdelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UITabBarController * uitbc = [storyboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"];
uitbc.delegate = self;
[self.window addSubview:uitbc.view];
return YES;
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"switching");
}
НоNSLog(@"switching");
никогда не стреляет Xcode выдает предупреждение для строкиuitbc.delegate = self;
поговорка "Передача appdelegate const__strong параметру несовместимого типа id".
Что я делаю неправильно? Я просто следую принятому ответу, найденному здесь, за исключением того, что я инстанцирую свою панель рассказов формы tabbarcontroller:
как получить событие, которое переключает вкладку меню на iphone
Update Основываясь на предложении скрама, я написал это для моего приложения appdelegate, но NSLOG (Переключение) все еще не запускает:
@interface johnAppDelegate : UIResponder <UITabBarControllerDelegate>
Я также обновил свой didFinishLauchingWithOptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
tabBarController = self.window.rootViewController.tabBarController;
tabBarController.delegate = self;
[window addSubview:tabBarController.view];
}
Хорошо, что ничего не падает. У меня тоже больше нет предупреждения о несовместимых типах. Но все же didSelectViewController не срабатывает.