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.