2017-07-17 32 views
0

所以我有一个登录界面是嵌入在导航控制器PageViewController。根据我的理解,我必须提供根导航控制器来给我的导航栏PageViewController呈现视图控制器的嵌入NavigationController编程

因此编程方式呈现PageViewController将无法​​正常工作。

我已经通过设置PageVC作为NavVC的根视图控制器嵌入PageVCNavVC

什么是最优雅的方式来进行此事?我需要能够在应用中的多个位置显示PageViewController(嵌入在其NavigationController中)。

+0

你说得对,你应该推而不是UINavigationController的PageViewController。发布代码如何推送NavVC并将PageVC嵌入到您的NavVC中。 –

回答

0

可能提供多一点的代码示例?我不知道你的情况是什么。

一个建议是只是简单的介绍,其中包含从您有任何管理控制你的PageViewController,无论是UIViewController为您最初的看法,或者说你有一个UITabBarController的navController。无论如何,您必须提供或设置UINavigationController作为根。

+0

但是,我将如何以编程方式呈现?我没有链接到'NavigationController'的自定义类。你能发布能够实现该目标的代码行吗? – Marmelador

+0

如果您尝试从该方向访问UIViewController,则有一个名为'navigationController'的可选属性。否则,你可以使用'UIViewController'功能'现在FUNC(UIViewController中,动画:BOOL,完成:(() - >无效)=无)',你会在你的navController写的第一个参数('UINavigationController'从UIViewController继承) – cloudcal

0

在您PageVC声明类方法

class func viewController() -> PageVC { 
    return UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Your Identifier") as! PageVC 
} 

现在要提出

let vc = PageVC.viewController 
    let nav = UINavigationController.init(rootViewController: vc) 
    self.present(nav, animated: true, completion: nil) 

您可以使用此代码需要的地方

+0

但是,这将创建一个新的NavVC。这会忽略我在故事板上的NavVC上设置的所有设置。 – Marmelador

+0

你为什么这样做你应该以编程方式应用Nav设置,外观会影响整个应用程序。但是,您可以在故事板上为导航控制器提供标识符,并分别更改'viewController()'方法。 –