ios - 使用标签栏 Controller-> Nav controller -> View Hierarchy 从 app delegate 呈现 View - iOS Swift

标签 ios swift uinavigationcontroller uitabbarcontroller appdelegate

我搜索了整个 S.O 并找到了类似的文章,但没有一个解决方案适合我。下面是我的 View 层次结构的屏幕截图 enter image description here

我尝试过的许多代码片段之一如下:

            var storyBoard = UIStoryboard()
            if UIDevice.current.userInterfaceIdiom == .pad {
                storyBoard = UIStoryboard(name: "iPad", bundle: nil)
            } else {
                storyBoard = UIStoryboard(name: "Main", bundle: nil)
            }


            let tabVc = self.window?.rootViewController as! UITabBarController


            let mynVC = storyBoard.instantiateViewController(withIdentifier: "nav") as! UINavigationController


            let calcVc = storyBoard.instantiateViewController(withIdentifier: "destVc")


            tabVc.present(mynVC, animated: true, completion: { () -> Void in
              // Segue , do stuff

            })

上面的代码显示了带有导航栏的正确选项卡,但是没有选项卡。

我想要一个强制触摸按钮来显示带有导航栏和标签栏的选项卡,有人知道该怎么做吗?

最佳答案

目前我无法对此进行全面测试,但我相信在标签栏中,您不会显示 View Controller 。您设置它的 View Controller 项和 selectedViewController 属性。

这应该可以,我会测试它并尽快更新,

var storyBoard = UIStoryboard()
        if UIDevice.current.userInterfaceIdiom == .pad {
            storyBoard = UIStoryboard(name: "iPad", bundle: nil)
        } else {
            storyBoard = UIStoryboard(name: "Main", bundle: nil)
        }


        let tabVc = self.window?.rootViewController as! UITabBarController

        let mynVC = storyBoard.instantiateViewController(withIdentifier: "nav") as! UINavigationController

        let calcVc = storyBoard.instantiateViewController(withIdentifier: "destVc")

        tabVc.viewControllers = [mynVC]
        tabVc.selectedViewController = mynVC

根据下面的其他内容,您可能还需要调用 window.setKeyAndVisible() 才能实际显示

关于ios - 使用标签栏 Controller-> Nav controller -> View Hierarchy 从 app delegate 呈现 View - iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652572/

相关文章:

ios - 处理错误的表达

ios - iOS 10 中未显示锁定屏幕上基于信标的应用程序建议

swift - 如何让Published属性只在收到数据时调用map

ios - 如何获得两个 CGPath 的交集?

ios - 在 View Controller 之间来回切换

ios - 在构建 : GoogleCloudMessaging. h 时,phonegap-plugin-push 错误 65 已弃用。我们可以从项目中删除它吗?快速解决?

ios - Ad Hoc 分发应用程序是灰色的,从 iTunes 传输到 iPhone 后

ios - UIButton 不适用于自定义 UITableViewCell (Swift)

ios - 在导航堆栈中跳过/添加 View Controller

ios - PresentViewController 在 iOS 中隐藏导航栏