我正在从loadVC执行segue到containterVC,我在其中设置了navigationController并将其rootViewController设置为mainVC
containterVC中的viewDidLoad中的代码:
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 = false”行下添加这些:
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]”行时,项目按原样运行,但导航栏中没有“菜单”按钮。
我做错了什么?
答案 0 :(得分:1)
您可以使用"容器视图"从故事板中直接在故事板中嵌入一个UINavigationController和mainVC。
无论如何,我认为myNavigationController.addChildViewController(mainVC)
没有必要。
此外,条形图项应设置为mainVC的navigationItem,而不是navigationController的条形图。
你也没有提到你使用的是什么类型的。