放松segue不工作

时间:2014-05-18 12:21:21

标签: ios objective-c segue

我目前正在从Apple's Start Developing iOS Apps开始教程。

在Tutorial:Storyboards页面(上面的链接)上,我被告知为两个视图制作自定义类。为简单起见,我将它们称为表视图(有一个表)和添加视图(有一个文本字段来向表中添加项目)。

表视图有一个链接按钮可以打开添加视图,添加视图的导航栏上有两个按钮:取消和完成。

我被告知要在添加视图的.m文件中写一个空方法unwindToList

- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{

}

然后我被告知要将“取消”和“完成”按钮链接到“场景基座”中的“退出”项目(请参见底部的图像),然后选择方法unwindToList。因此,正如本教程中引用的那样,这应该是应该发生的:

  

现在,运行您的应用。在启动时,您会看到一个表视图 - 但其中没有数据。您可以单击“添加”按钮并从[表格视图]导航到[添加视图]。您可以单击取消和完成按钮以导航回[表格视图]。“

然而,当我点击取消或完成时,根本没有任何反应。我确定两者都有联系。

提前致谢!

Tutorial Image

2 个答案:

答案 0 :(得分:45)

如果您仔细阅读本教程,您将看到unwind方法需要位于{<1}}中,您正在展开 - 来自教程 -

  

通过向操作系统添加操作方法来创建展开segue   目标视图控制器(要放松的视图控制器)   到)。

     

...

     

因为您想要展开回XYZToDoListTableViewController,您需要将具有此格式的动作方法添加到XYZToDoListTableViewController接口和实现。

因此,您应该在表视图控制器中创建UIViewController方法,而不是在添加视图控制器中。

答案 1 :(得分:4)

我的经验是,在应用segue之前,返回的控制器中的unwind方法必须存在。