我執行從我loadVC一個原因請看containterVC中,我成立了一個navigationController,並設置它的RootViewController的到mainVC順着接下去設置自定義的導航欄
代碼中viewDidLoad中的containterVC後不工作:
override func viewDidLoad() {
super.viewDidLoad()
mainVC = UIStoryboard.mainVC() //This is an extension to UIStoryboard
//Setting up the delegate:
mainVC.delegate = self
//rootViewController - ten najbardziej na dole
myNavigationController = UINavigationController(rootViewController: mainVC)
//Storing the root view as currentViewController:
self.currentViewController = mainVC
myNavigationController.addChildViewController(mainVC)
self.view.addSubview(myNavigationController.view)
addChildViewController(myNavigationController)
myNavigationController.didMoveToParentViewController(self)
//Trying to set up the navigation bar
let bar = myNavigationController.navigationBar
//Navigation bars:
bar.barTintColor = UIColor.blackColor()
bar.tintColor = UIColor.whiteColor()
bar.translucent = false
}
我啓動該項目。和?一切正常。
然後我嘗試下「bar.translucent =假」行添加這些:
print("statement1")
let menuButton = UIBarButtonItem(title: "Menu", style: UIBarButtonItemStyle.Plain, target: self, action: "")
print("statement2")
let item = myNavigationController.navigationItem
print("statement3")
item.leftBarButtonItem = menuButton
print("statement4")
bar.items = [item]
print("statement5")
啓動項目報表打印多達4後顯示與5是沒有的。因此,似乎loadVC和containterVC之間的segue已完成,但我沒有看到被設置爲rootViewController的mainVC屏幕。
當我刪除「bar.items = [item]」行時,項目按原樣運行,但導航欄中沒有「Menu」按鈕。
我在做什麼錯?
我正在使用「顯示(例如推)」segue。我知道將它全部放在故事板中,但這是我的第一個項目,我試圖學習儘可能多的預編碼功能以及它們如何工作 – Ancinek
由於您使用「顯示(例如推)」,因此您想要配置哪個導航控制器 - 根目錄還是嵌入目錄(myNavigationController)?我通過閱讀你的問題來猜測myNavigationController。如果是這樣,嘗試將條形項設置爲mainVC的navigationItem,而不是navigationController的。 – KoCMoHaBTa
將條形項目設置到UINavigationController堆棧中的ViewController而不是NavigationController本身就是答案!感謝民間! – Ancinek