【问题标题】:Navigation Controllers disappearing in UISplitViewController导航控制器在 UISplitViewController 中消失
【发布时间】:2017-10-29 06:38:44
【问题描述】:

我目前在拆分视图控制器中设置了我的应用程序,以便详细信息视图和主视图都具有导航控制器,并且详细信息视图在它和另一个视图之间具有递归segues。我使用 show segues,所以我认为导航栏会停留在显示的详细视图之上。但是,在激活这两个 segue 之后,导航栏消失了,我只剩下看起来是模态 segues 的东西。

下面是重现问题的示例情节提要设置的屏幕截图:

Dropbox

这里是示例项目的链接:

关于如何将导航栏保持在视图顶部的任何建议?

【问题讨论】:

    标签: ios swift user-interface uinavigationcontroller uisplitviewcontroller


    【解决方案1】:

    您需要使用导航控制器推送ViewController

       override func viewDidLoad() {
            super.viewDidLoad()
           buttonNext.addTarget(self, action: #selector(tapsOnNext), for: .touchUpInside)
        }
        func tapsOnNext(){
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "NextViewController") as? NextViewController
            self.navigationController?.pushViewController(vc!, animated: true)
        }
    

    & 在NextViewController 中使用

       buttonPrev.addTarget(self, action: #selector(tapsOnNext), for: .touchUpInside)
        }
        func tapsOnNext(){
            self.navigationController?.popViewController(animated: true)
        }
    

    【讨论】:

    • 我不想弹出下一个视图控制器。当按钮被按下时,我只想继续将它们添加到堆栈中。类似于 Twitter 或 Facebook,您可以在其中查看用户的个人资料,然后从那里单击另一个个人资料,然后再单击另一个个人资料,所有这些都将添加到视图堆栈中。
    • 然后使用self.navigationController?.pushViewController(vc!, animated: true) 但注意导航堆栈。
    • 如果你的意思是要小心内存,我的数据是硬编码的,你会得到的递归的最高级别是 3。我只是想重用情节提要视图而不是重复 3 次
    • 正如你在第一条评论中提到的(只需要三个堆栈)然后使用弹出视图控制器,没关系,你可以继续。
    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多