使用segues返回两个UIViewControllers

时间:2012-05-05 01:26:51

标签: objective-c ios uiviewcontroller segue

在我的iOS应用程序中,我有四个UIViewController,为了争论,我们将它们分别称为1,2,3和4.我有一些从一个到另一个逐渐引导的段(1-> 2,2-> 3,3-> 4)。但是,在4我希望有一个按钮可以回到一个。我只描绘了一种这样做的方法,但我无法弄清楚如何实现它......

这种方式是让segue直接连接4-> 1,并且当segue被称为从内存中删除2和3时(否则用户可以继续构建UIViewController,因为它们都不是被删除)。我不知道如何从记忆中删除它们,因为我没有指向它们的任何变量(也就是说,它们是在他们各自的段被调用时创建的,所以据我所知,我不知道&#39 ; t可以直接访问它们。)

我不知道这是否是最好的方法,但如果你能弄清楚如何做到这一点(或更好的方式),我们将不胜感激任何帮助:)

2 个答案:

答案 0 :(得分:2)

如果您尚未使用UINavigationController,则需要使用它。

然后在第4个视图中,您只需要一个带有选择器的按钮,该按钮执行以下操作:

- (IBAction)goBackToFirstView:(id)sender {
    [self.navigationController popToRootViewControllerAnimated:YES];
}

这将为您处理所有内存,并通过弹出堆栈中的其他内容将您发送回第一个视图控制器。

答案 1 :(得分:0)

    NSArray *array = [NSArray arrayWithObject:[navigationController.viewControllers objectAtIndex:navigation.viewControllers.count-1]];
    navigationController.viewControllers = array;

然后执行segue。