如何在 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)
就像你提到的那样,如果 UITabBarController
的 selectedViewController
是 UINavigationController
,你可以改为 pushViewController
。
首先,您必须获取当前屏幕 UINavigationController
。然后以requestor
作为参数执行pushViewController
。
presentedNavigationController = rootViewController.selectedViewController as! UINavigationController
presentedNavigationController.pushViewController(requestor, animated: true)
我想在 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)
就像你提到的那样,如果 UITabBarController
的 selectedViewController
是 UINavigationController
,你可以改为 pushViewController
。
首先,您必须获取当前屏幕 UINavigationController
。然后以requestor
作为参数执行pushViewController
。
presentedNavigationController = rootViewController.selectedViewController as! UINavigationController
presentedNavigationController.pushViewController(requestor, animated: true)