关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一级页面跳转到了二级页面,然后从二级页面跳转到了三级页面,依次类推。,如果一级一级的返回我知道是没有问题的,调用
navigationController popViewControllerAnimated就行了
1.但是某些情况下我可能想要马上回到主页面,而不是一级一级的返回(如果有很多层会很累的),。有谁知道怎么快速的返回到某一个指定的页面吗?多谢啊
========最后的答案是===============
返回根页面用 :
[self.navigationController popToRootViewController]
返回指定的某个vc用下面
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];
或
for (UIViewController *controller in self.navigationController.viewControllers) {
if ([controller isKindOfClass:[你要跳转到的Controller class]]) {
[self.navigationController popToViewController:controller animated:YES];
}
}
2.怎么判断在一个页面中点击了系统的返回按钮
- (void)viewWillDisappear:(BOOL)animated {
if( ! [[self.navigationController viewControllers] containsObject:self]){
// NSLog(@"用户点击了返回按钮");
[self showTabBar];
}else {
// NSLog(@"用户没有点击了返回按钮");
}
}
3.怎么判断用户返回的是navigationController的根试图呢 通过这个可以控制自定义tabbar的隐藏和显示
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if ([self.navigationController viewControllers].count == 1 ){
// NSLog(@"用户点击了返回按钮,并且会回到根视图界面");
[self showTabBar];
} else {
}
}