我有一个带有 a 的应用程序,UIViewController
用于将项目添加到UITableView
. 用户填写几个字段,然后数据显示在单元格中。我正在展开并使用调用视图上的函数来检索数据。要创建展开,我单击从控制器拖动到Exit
,然后选择我的功能。
现在,我还想使用不同的相同UIViewController
,UIViewController
以允许用户编辑添加的数据。当我单击接受按钮时,它会展开到UITableViewController
,而不是调用它进行编辑的视图。
接受按钮的代码是:
@IBAction func acceptButtonClick(sender: UIBarButtonItem) {
performSegueWithIdentifier("ReturnFromAddItem", sender: title)
}
我想做的是:
@IBAction func acceptButtonClick(sender: UIBarButtonItem) {
if !editingFields {
performSegueWithIdentifier("ReturnFromAddItem", sender: title)
}
else {
performSegueWithIdentifier("ReturnFromEditItem", sender: title)
}
}
不过,我似乎无法做到这一点。我的 segue ID 是ReturnFromAddItem
. 我看不到添加两个放松转场的方法。知道我该如何处理吗?我想要与添加时相同的功能。我希望它在调用者上展开一个函数。
我应该详细说明一下。我能够通过控制单击拖动添加第二个展开以退出,但是当我在 中调用它时performSegueWithIdentifier
,它什么也不做。没有错误,但它不会离开视图控制器并返回给调用者。
编辑进一步阐述。
基本控制器称为 BaseViewController。这是一个UITableView
. 导航栏中有一个“+”按钮,它调用了一个UIViewController
名为 AddViewController。当点击“+”按钮时,会有一个将用户带到 AddViewController 的 segue。用户填写一些字段并单击 Accept 按钮。Accept 按钮的代码在上面列出。它调用 unwind segue,然后我们开始回到 BaseViewController。当用户点击 BaseViewController 中的项目时,它会将用户带到一个UIViewController
名为 InformationController。从那里,我想让用户有机会通过单击导航栏上的“设置”按钮来编辑数据InformationController. 这将继续到 AddViewControllerUIViewController
,但它会使用它来编辑现有字段。当从 InformationController 调用 AddViewController 时,我想放松并返回 InformationController,当从 BaseViewController 调用 AddViewController 时,我想返回 BaseViewController。我遇到的问题是,即使我将 AddViewController 的展开 segue 添加到 InformationController,当我单击 Accept 按钮时也没有任何反应。
最终编辑:我想我已经弄清楚了。在 InformationController 中,我使用 viewWillDisappear 将 unwind segue 调用回 BaseController。当我单击设置以从 InformationController 调用 AddViewController 时,viewWillDisappear 正在触发,并且我正在展开到 BaseViewController。所以我需要弄清楚我是否应该继续使用 viewWillDisappear 并找到一种方法来告诉它它没有消失,因为我已经完成了它,或者我是否应该从其他地方执行展开。