Como implementar o didSelectViewController

Eu quero pegar o evento quando alguém alterna entre as guias. Eu tenho as seguintes duas funções no meu arquivo 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");
}

Mas oNSLog(@"switching"); nunca dispara. O xcode emite um aviso para a linhauitbc.delegate = self; dizendo "Passando appdelegate const__strong para o parâmetro de id de tipo incompatível".

O que estou fazendo de errado? Estou apenas seguindo a resposta aceita encontrada aqui, exceto pelo fato de eu estar instanciando minha storyboard do formulário tabbarcontroller:

como obter o evento que o menu da guia de comutação no iphone

Atualizar Com base na sugestão do skram, eu escrevi isso para o meu appdelegate, mas o NSLOG (Switching) ainda não dispara:

@interface johnAppDelegate : UIResponder <UITabBarControllerDelegate>

Eu também atualizei meu didFinishLauchingWithOptions:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
tabBarController = self.window.rootViewController.tabBarController;
tabBarController.delegate = self;
[window addSubview:tabBarController.view];
}

Ainda bem que nada falha. Eu também não estou mais no aviso sobre tipos incompatíveis. Mas ainda assim, didSelectViewController não dispara.

questionAnswers(3)

yourAnswerToTheQuestion