【发布时间】:2013-02-21 15:16:37
【问题描述】:
我需要在视图控制器之间跳转。例如:
View1: First screen (Just logo)
View2: Download Screen
View3: First app screen (Some Buttons)
View4-View(N): some app screens
当用户进入应用程序时,应用程序转到 View1->View2(下载内容)->View 3->View4->View5 然后用户希望转到他所做的第一个应用程序屏幕(View3):
NSArray *array = [self.navigationController viewControllers];
[self.navigationController popToViewController:[array objectAtIndex:2] animated:NO];
用户第一次进入应用程序时:View1->View3(不再需要下载屏幕),我有不同的推送序列可以转到 View3,所以假设用户转到:View1->View 3- >View4->View5,现在他想回到View3,所以函数:
NSArray *array = [self.navigationController viewControllers];
[self.navigationController popToViewController:[array objectAtIndex:2] animated:NO];
会将他返回到 View4,这是错误的。我该如何解决?
【问题讨论】:
-
假设数组项按顺序添加 View1,View3,View4,View5 ,
[array objectAtIndex:2]应该给你 View4 这没什么错,[array objectAtIndex:0] = View1,[array objectAtIndex:1] = View3,[array objectAtIndex:2] = View4这似乎是正确的我,试试下面的答案或试试objectAtIndex:1 -
错了我的意思是我需要函数 [self.navigationController popToViewController:[array objectAtIndex:2] animated:NO];无论如何,总是去view3
-
如果你想从不同的控制器或不同的堆栈结构返回到一个特定的控制器,你应该使用 unwind segue。
标签: ios xcode uinavigationcontroller