Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何在导航控制器中导航到特定控制器_Swift_Xcode_Uiviewcontroller_Navigation_Storyboard - Fatal编程技术网

Swift 如何在导航控制器中导航到特定控制器

Swift 如何在导航控制器中导航到特定控制器,swift,xcode,uiviewcontroller,navigation,storyboard,Swift,Xcode,Uiviewcontroller,Navigation,Storyboard,我试图从故事板导航第二个控制器,但导航栏未显示在控制器上。实际上,我想从应用程序代理中显示控制器 这是我的堆栈: 这是我的密码: let storyboard = UIStoryboard(name: AppStoryboards.MAIN, bundle: Bundle.main) guard let controller = storyboard.instantiateViewController(withIdentifier:

我试图从故事板导航第二个控制器,但导航栏未显示在控制器上。实际上,我想从应用程序代理中显示控制器

这是我的堆栈:

这是我的密码:

             let storyboard = UIStoryboard(name: AppStoryboards.MAIN, bundle: Bundle.main)

                guard let controller = storyboard.instantiateViewController(withIdentifier: ViewControllerIdentifiers.THREAD_DETAIL_CONTROLLER) as? ThreadDetailController else {
                    return
                }

                controller.threadIdReceivedFromFeed = threadId as? String ?? String()

                self.window?.rootViewController = controller
以下是实际结果:

您需要使用添加控制器作为UINavigationController的rootViewController,然后将该navigationController设置为窗口的rootViewController,即


也许这个答案可以帮助你在哪里写这段代码?Bcz我正在从应用程序代理中显示view Controller,因为在navigationStack中没有任何其他东西可以移动。rootViewController是navigationStack中的第一个控制器。好的,现在我必须移动提要屏幕,我应该做什么?请澄清您要创建的流,以及您想要在其中创建的所有控制器。添加问题本身。我知道没有后台堆栈如何移动导航控制器的第一个屏幕,而不是将ThreadDetailController设置为窗口的rootViewController,从FeedViewController中推送它。从要显示ThreadDetailController的位置添加FeedViewController的代码。
    let storyboard = UIStoryboard(name: AppStoryboards.MAIN, bundle: nil)

    if let controller = storyboard.instantiateViewController(withIdentifier: ViewControllerIdentifiers.THREAD_DETAIL_CONTROLLER) as? ThreadDetailController {
        controller.threadIdReceivedFromFeed = (threadId as? String) ?? ""
        let navigationController = UINavigationController(rootViewController: controller) //here...
        self.window?.rootViewController = navigationController
    }