2

我有一个带有 a 的应用程序,UIViewController用于将项目添加到UITableView. 用户填写几个字段,然后数据显示在单元格中。我正在展开并使用调用视图上的函数来检索数据。要创建展开,我单击从控制器拖动到Exit,然后选择我的功能。

现在,我还想使用不同的相同UIViewControllerUIViewController以允许用户编辑添加的数据。当我单击接受按钮时,它会展开到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 并找到一种方法来告诉它它没有消失,因为我已经完成了它,或者我是否应该从其他地方执行展开。

4

0 回答 0