Как реализовать 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 не срабатывает.

Ответы на вопрос(3)

Ваш ответ на вопрос