iOS多級跳轉,返回指定viewcontroller
阿新 • • 發佈:2019-02-16
在開發中經常會有多級跳轉 viewcontroller的問題,然後有時不一定要一級一級的返回,可能直接返回到某個根檢視控制器或某個指定的控制器.
其中採用navigationController pushViewController 的方法,比如我從主頁面跳轉到了一級頁面,又從一級頁面跳轉到了二級頁面,然後從二級頁面跳轉到了三級頁面,依次類推。,如果一級一級的返回我知道是沒有問題的,呼叫navigationController popViewControllerAnimated就行了。。但是某些情況下我可能想要馬上回到主頁面,而不是一級一級的返回.下面有實踐過的一些方法.
1.一級一級返回上一頁面
[self.navigationController popToRootViewController]
2.知道某個頁面的index的時候直接跳轉
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];
3.通過class 定位到指定控制器
NSLog(@"controller個數%lu",self.navigationController.viewControllers.count);
NSLog (@"%@",self.navigationController.viewControllers);
for(UIViewController *temp in self.navigationController.viewControllers)
{
if([temp isKindOfClass:[你要跳轉的控制器XXXController class]])
{
[self.navigationController popToViewController:temp animated:YES];
}
跳轉之前最好先列印下你的Controller個數和Controller的名字,這樣用第二種第三種方法都可以. 本人推薦第三種,不容易造成野指標.