iOS - 视图控制器的顺序

时间:2016-01-01 18:21:58

标签: ios swift uinavigationcontroller

我将尽力解释发生的事情,但如果我能进一步澄清,请告诉我。我自然有多个视图控制器,在它们之间,我使用segue进行转换和传输。以下是我遇到问题的观点的顺序:

  • 编辑个人资料视图;选择查看当前地址
  • 当前地址视图显示。此视图具有后退按钮(从堆栈弹出视图)
  • 返回编辑个人资料视图,我选择更新当前地址
  • 我选择保存地址并通过UIAlert通知保存成功(反映在后端)。我在UIAlert中单击“确定”以执行以下操作:

    let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default){
    UIAlertAction inself.basicMap.removeObserver(self, forKeyPath: "myLocation")
    self.performSegueWithIdentifier("backToEditFromWorkSegue", sender: self)}`
    

然后我自动返回编辑个人资料。如果单击“编辑配置文件”视图中的“完成”按钮,视图将消失,但会再次显示“更新当前地址”。这就是我想知道为什么会发生以及如何解决的问题。编辑个人资料上的完成按钮链接到:

self.customNavigationBar.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "addTapped")

和addTapped是:

func addTapped()
{
    self.navigationController?.popViewControllerAnimated(true)
}

从我在这里可以想到的,我相信突然出现的观点出了问题。

1 个答案:

答案 0 :(得分:1)

您的代码会将当前视图控制器弹出堆栈并显示上一个视图控制器。我想你正试图回到根视图控制器?如果是这样,试试:

self.navigationController?.popToRootViewControllerAnimated(true)