swift3如何显示导航视图控制器

Posted

技术标签:

【中文标题】swift3如何显示导航视图控制器【英文标题】:swift3 how to show navigation viewcontroller 【发布时间】:2017-05-01 14:26:20 【问题描述】:

我想从通知小部件打开特定视图。 通常其他答案是创建新视图..(let viewcontroller = ... ) 所以如果你继续调用,继续使用内存..

所以,我想打开已经在我的应用中打开的 viewA,然后移动到 viewB。

我的应用结构基本上是应用启动时的viewA。

我的想法是,我不想创建一个新的 viewA,而是想使用 navigation.push 从现有的 viewA 移动到 viewB。

检查特定页面是否已经存在,如何在顶部显示该页面以及如何导航.push的方法是可行的。

现在我正在使用此代码从 Appdelegate 打开 viewA

let MainView: Main_View_List_ = mainStoryboard.instantiateViewController(withIdentifier: "Main_List_View") as! Main_View_List_
let nav = UINavigationontroller.init(rootViewController: MainView)
UIApplication.topViewController()?.present(nav, animated: true, completion: nil)

【问题讨论】:

【参考方案1】:

假设您可以访问导航控制器,您需要执行以下操作以返回 viewA:

     for viewController in nav.viewControllers 
         if viewController is ViewAClass 
           viewController.pushViewBFlag = true
           nav.popToViewController(viewController, animated: true)
          return
     
  

回到 viewA 后,您可以检查 pushViewBFlag 并创建和推送 viewB。

另外,由于您似乎将 viewA 设置为导航控制器的根,您可以执行以下操作:nav.popToRootViewControllerAnimated(true) 以返回 viewA。然后您需要处理从 viewA 推送 viewB。

【讨论】:

以上是关于swift3如何显示导航视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 segue 从 UIView 导航到 UIView 控制器?

导航控制器工具栏大小和位置 - iOS Swift

如何在 xib 视图控制器中添加图像(swift3)[重复]

在没有导航控制器的情况下滑动 Web 视图时如何隐藏工具栏?

swift3中的导航问题,带有没有故事板的.xib文件

swift 3登录后如何返回主页或以前的视图控制器