É assim que estou tentando obter meu PlayersViewController:
UITabBarController *tabBarController = (UITabBarController*)self.window.rootViewController;
UINavigationController *navigationController = [tabBarController viewControllers][0];
PlayersViewController *playersViewController = [navigationController viewControllers][0];
O aplicativo falha após a terceira linha com o seguinte erro:
Terminating app due to uncaught exception "NSInvalidArgumentException", reason: "-[UIViewController viewControllers]: unrecognized selector sent to instance 0x715b290"
Eu sou novo na programação do IOS, então não consigo descobrir qual é o problema. Eu não estou recebendo o meu PlayersViewController correto? Aqui está a imagem com o meu storyboard.
Respostas:
1 para resposta № 1o UINavigationController
que contém o PlayersViewController
controlador está no índice 1 no controlador da barra de guias viewControllers
array. A indexação é da esquerda para a direita, ou seja, a guia mais à esquerda possui índice 0. A guia "Players" está à direita de "Gestures" e a barra de guias tem dois itens, portanto, o view controller associado a essa guia index está no índice 1.
A mensagem que você está vendo é porque no índice 0 há um UIViewController
instância correspondente com o rótulo "View Controller - Gestures" no seu storyboard, e você está tentando enviar uma mensagem UIViewController
não responde, na crença de que é um UINavigationController
.