Pergunta

Eu tenho um aplicativo navigationController.

Eu empurro um tabbar para a vista. Tabs estão trabalhando título é alterado, perfeito. Agora um dos meus guias tem uma lista e eu tento ligar-se a uma página filha dentro da barra de páginas:

NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];

Nada acontece. Claro que isso funciona:

self.view = nextController.view;

Eu quero ser capaz de empurrar a esta sub-página dentro do meu tabbar E mudar os botões navigationbars. Isso é possível?

Foi útil?

Solução

Parece que você está empurrando um UITabBarController em um UINavigationController? De documentação da Apple , você não pode empurrar um controlador de barra de guia para um controlador de navegação.

O que você provavelmente quer fazer é o oposto: tem um controlador de barra de abas com UINavigationControllers como os itens de tabulação. Isto é semelhante à interface em, digamos, o aplicativo ou Telefone aplicativo iPod.

Outras dicas

Concordo com Alex - um TabBarController dentro de um controlador de navegação não parece ser um padrão de interface agradável

.

De qualquer forma, para responder à sua pergunta: Você já tentou acessar o controlador de navegação através do controlador de barra de guia

self.tabBarController.navigationController

Eu não tenho certeza se isso funciona, mas você pode experimentá-lo.

Acho que encontrei uma solução fácil.

Na sua classe onde você quer empurrar um ponto de vista, declarar uma UINavigationController local como um propterty:

@interface userMenu : UIViewController  {
UINavigationController *navigationController;
}
@property (nonatomic, retain) UINavigationController *navigationController;

Lembre-se de sintetizá-lo.

Em sua classe para o tabBarController:

NSArray *viewControllersArray = [self.tabBarController viewControllers];

userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;

Depois que você pode fazer [self.navigationController pushViewController:nextController animated:YES];

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top