navigationController返回問題
假設我共有5層viewcontroller每層都用
只是ViewController不同而已
|
有個方法是在每層ViewController那返回上一層ViewController
|
但是我想請問的是如果今天我想從第5層直接跳回第2層或第3層的話該如何寫這語法
因為我根本沒辦法使用下面這個方法
原因是第五層根本不知道他的上上兩層是誰?還是上上三層是誰
|
问题解答:
方法1:
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -3)] animated:YES];
self.navigationController.viewControllers是一个数组
第一层:[self.navigationController.viewControllers objectAtIndex:0];
当前层:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count]-1)];
上上层:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count]-3)];
方法2:
遍历所有的视图,把符合的跳转.
<span style="white-space:pre"> </span>XXViewController *tagViewController = nil;
for (UIViewController *VC in self.navigationController.viewControllers) {
if ([VC isKindOfClass:[XXViewController class]]) {
tagViewController = (XXViewController *)VC;
}
}
[self.navigationController popToViewController:tagViewController animated:YES];
注:相关内容转自http://www.cocoachina.com/bbs/simple/?t47305.html