Я пытаюсь вывести контроллер представления в свой стек навигации.Поп, чтобы просмотреть контроллер в стеке навигации
Это то, на что похожа моя раскадровка.
Мой вид таблицы Контроллер имеет 4 ячейки. Когда я нажимаю на четвертую ячейку, я бы хотел выскочить на последний контроллер представления.
#import "TableViewController.h"
#import "ViewController.h"
@interface TableViewController()
@end
@implementation TableViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 4;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"Cell %ld", (long)indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
NSLog(@"%@", [NSString stringWithFormat:@"Cell %li tapped", (long)indexPath.row]);
NSLog(@"%lu", (unsigned long)self.navigationController.viewControllers.count);
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ViewController *VC4 = [storyboard instantiateViewControllerWithIdentifier:@"VCFour"];
[self.navigationController popToViewController:VC4 animated:NO];
break;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
@end
Ошибка
2014-11-13 13:40:58.942 Test[18601:1828547] Cell 0 tapped
2014-11-13 13:40:58.942 Test[18601:1828547] 1
2014-11-13 13:40:58.943 Test[18601:1828547] *** Assertion failure in -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-3318/UINavigationController.m:5568
2014-11-13 13:40:58.945 Test[18601:1828547] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to get popped view controller.'
Как вы можете видеть self.navigationController.viewControllers.count печать 1 к консоли и, возможно, это вопрос. Должно ли это не быть 5, поскольку на раскадровке всего 5 диспетчеров просмотра?
Может ли кто-нибудь помочь?
Вы не можете использовать контроллер точки зрения, который не находится в вашем стеке навигации. Вы хотите нажать PUSH новый контроллер. – Stonz2
Как добавить этот контроллер в свой стек навигации? – user3626407