如何在 UITabViewController 中显示 ViewController(非模态)

How to show a ViewController (not modally) within a UITabViewController

我想在 UITabController 中显示 ViewController 但不是模态显示。在应用程序中,有一个主屏幕,其中有一堆按钮可以连接到其他 ViewControllers。其他视图控制器嵌入在导航控制器中。我现在需要显示 TodayExtension 中的 ViewController 之一。在我的应用程序委托中,我有这个,但它在没有选项卡结构或导航控件的情况下以模态方式呈现 RequestorViewContoller。

    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let requestor = mainStoryboard.instantiateViewController(withIdentifier: "RequestStoryboardID") as! RequestorViewController
    let rootViewController = self.window!.rootViewController as! UITabBarController
    rootViewController.present(requestor, animated: false, completion: nil)

就像你提到的那样,如果 UITabBarControllerselectedViewControllerUINavigationController,你可以改为 pushViewController

首先,您必须获取当前屏幕 UINavigationController。然后以requestor作为参数执行pushViewController

presentedNavigationController = rootViewController.selectedViewController as! UINavigationController
presentedNavigationController.pushViewController(requestor, animated: true)