我目前正在从Apple's Start Developing iOS Apps开始教程。
在Tutorial:Storyboards页面(上面的链接)上,我被告知为两个视图制作自定义类。为简单起见,我将它们称为表视图(有一个表)和添加视图(有一个文本字段来向表中添加项目)。
表视图有一个链接按钮可以打开添加视图,添加视图的导航栏上有两个按钮:取消和完成。
我被告知要在添加视图的.m文件中写一个空方法unwindToList
:
- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{
}
然后我被告知要将“取消”和“完成”按钮链接到“场景基座”中的“退出”项目(请参见底部的图像),然后选择方法unwindToList
。因此,正如本教程中引用的那样,这应该是应该发生的:
现在,运行您的应用。在启动时,您会看到一个表视图 - 但其中没有数据。您可以单击“添加”按钮并从[表格视图]导航到[添加视图]。您可以单击取消和完成按钮以导航回[表格视图]。“
然而,当我点击取消或完成时,根本没有任何反应。我确定两者都有联系。
提前致谢!
答案 0 :(得分:45)
如果您仔细阅读本教程,您将看到unwind方法需要位于{<1}}中,您正在展开 - 来自教程 -
通过向操作系统添加操作方法来创建展开segue 目标视图控制器(要放松的视图控制器) 到)。
...
因为您想要展开回XYZToDoListTableViewController,您需要将具有此格式的动作方法添加到XYZToDoListTableViewController接口和实现。
因此,您应该在表视图控制器中创建UIViewController
方法,而不是在添加视图控制器中。
答案 1 :(得分:4)
我的经验是,在应用segue之前,返回的控制器中的unwind方法必须存在。