2017-07-17 49 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()'方法。 –

相關問題