Kiedy mówimy o popychanie kontroler nawigacyjny, to najprawdopodobniej że chcesz go zaprezentować.
- Przedstawiając UINavigationController
Jest to najczęstszy sposób i to jest to, co chcesz robić w większości przypadków. UINavigationController
nie można przekazać, można go wyświetlić tylko z nowym kontrolerem widoku root.
MyViewController* vc = [[MyViewController alloc]
initWithNibName:@"MyController" bundle:nil];
UINavigationController *myNav = [[UINavigationController alloc] initWithRootViewController: vc];
[self presentViewController:myNav animated:YES completion:nil];
Co robisz tutaj, jest najpierw utworzyć UINavigationController
a następnie ustawić konieczne UIViewController
jako kontrolera głównego.
- Pushing UINavigationController
Jeśli masz hierarchię ViewControllers i trzeba wcisnąć kontroler widoku, który zawiera kontroler nawigacji wewnątrz kroki :
1) Naciśnij ViewController, zawierający UINavigationController
.
Aby PushUINavigationController
najpierw utworzyć podklasę UIViewController
, która będzie wrapper-/zamykanym pojemniku klasa dla UINavigationController
i jego treści.
ContainerViewController* vc = [[ContainerViewController alloc] init];
2) Dodanie UINavigationController jako kontroler widoku dziecko
W viewDidLoad
swojego pojemnika (które właśnie instancja) po prostu dodać coś takiego:
MyNavController* myNav = [[MyNavController alloc] init];
[myNav willMoveToParentViewController:self];
myNav.view.frame = self.view.frame; //Set a frame or constraints
[self.view addSubview:myNav.view];
[self addChildViewController: myNav];
[myNav didMoveToParentViewController:self];
Co robisz tutaj w zasadzie tworzymy kontroler nawigacyjny i dodajemy go jako kontroler do twojego opakowania. to jest to! Pomyliłeś wciśnięty swój UINavigationController.
Musisz nacisnąć kontroler widoku, a nie inny kontroler nawigacyjny. Jeśli naprawdę chcesz wyświetlić inny kontroler nawigacyjny, musisz go przedstawić, a nie naciskać. – rmaddy
Dziękuję bardzo gotowy, błąd zniknął, ale idzie do tableViewController, chcę go na detal, Dzięki – Jose
Zobacz ten wątek http://stackoverflow.com/questions/10817305/pushing-a-navigation -kontroler-jest-nieobsługiwany-wykonuje-segues/23102975 # 23102975 (Mam odpowiedź, która zadziałała dla mnie, ale być może jedna z innych zrobi dla ciebie lewę.) – LordParsley