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 控制器?
如何在 xib 视图控制器中添加图像(swift3)[重复]