1. 程式人生 > >iOS多級跳轉,返回指定viewcontroller

iOS多級跳轉,返回指定viewcontroller

在開發中經常會有多級跳轉 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的名字,這樣用第二種第三種方法都可以. 本人推薦第三種,不容易造成野指標.