iOS - View Controller 的顺序

标签 ios swift uinavigationcontroller

我会尽力解释发生了什么,但如果我能进一步澄清,请告诉我。我自然有多个 View Controller ,在它们之间,我使用 segues 进行转换和传输。以下是我遇到问题的 View 顺序:

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

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

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

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

addTapped 是:

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

根据我在这里的想法,我认为弹出 View 出了点问题。

最佳答案

您的代码将从堆栈中弹出当前 View Controller 并向您显示前一个 View Controller 。我想你是想回到 Root View Controller ?如果是这样尝试:

self.navigationController?.popToRootViewControllerAnimated(true)

关于iOS - View Controller 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558757/

相关文章:

ios - `willPresent notification` 是 't called & local notifications aren' t 当应用程序在 iOS 10 中处于前台时不显示

ios - 将内容左对齐 - SwiftUI iOS 14 Widget

swift - UITabBarController 的登录屏幕缺少导航链接

swift - Xcode 14 UINavigationBar 问题

ios - 如何判断 ViewController 是被拉动还是被推送?

ios - 发送到实例的 UICollectionViewCell 无法识别的选择器

ios - 应用程序加载器卡在使用 iTunes Store 验证 Assets

ios - UITableViewRowAction 与 UISwipeActionsConfiguration

ios - 线程 1 EXC_BREAKPOINT(代码=1,子代码=0x101959bfc)Swift

ios - 如何使用prepareForDeletion快速删除CoreData中的照片?