Проблема с навигационным контроллером - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть обычный контроллер вида, и я хочу добавить к нему контроллер uinavigation так:

<code>
[self.view addSubview:aNavigationController.view];
все работает, хорошо, aNavigationController - это IBOutlet, в XIB его контроллер вида загружается из другой xib, затем в классе контроллера вида навигационного контроллера я набираю это:
<code>
- (IBAction)anAction {
[self.navigationController pushViewController:aViewController animated:YES];
}
все работает нормально, вид меняется на вид aViewController и он анимирован, но когда я набираю класс aViewController, это:
<code>
- (IBAction)anotherAction {
[self.navigationController popViewControllerAnimated:YES];
}
это сбой, почему?

1 Ответ

2 голосов
/ 23 февраля 2011

Потому что нет представления для поп. Когда вы пытаетесь открыть контроллер представления, ожидается, что в стеке есть какое-то представление, то есть представление, из которого вы вызываете popViewControllerAnimated, уже было выдвинуто ранее.

Таким образом, всплывающее окно - это не просто потрясающая анимация, а навигация по стеку представлений в контроллере навигации. В этой конкретной ситуации вы пытаетесь вызвать -1-й элемент этого стека, что является причиной сбоя.

Копайте глубже здесь:

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/NavigationControllers/NavigationControllers.html#//apple_ref/doc/uid/TP40007457-CH103-SW1

...