我遇到这种情况:
在我的应用程序中,我在视图控制器和导航控制器中有一个页面视图控制器。我想在页面视图控制器中出现一个特定的视图控制器时在导航栏中添加正确的项目,因此我在视图控制器中执行此操作,我想在其中添加右键:
override func viewDidAppear(animated: Bool) {
let camera:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Camera, target: self, action: Selector("test"))
self.navigationItem.rightBarButtonItem = camera
}
但它不起作用,我没有看到正确的按钮。
我错了什么?
编辑一:
这是我在故事板中的情况:
答案 0 :(得分:1)
问题是self.navigationItem
仅在此视图控制器是导航控制器的直接子节点时使用。这不是这里的情况。导航控制器的直接子控件是一些其他视图控制器 - 可能是页面视图控制器,或者包含页面视图控制器的东西(很难从您的描述中看出)。你需要在这里重新思考你的方法。你可以做你想做的事情,但只能通过某种方式向导航控制器的直接子项发送信号并让他配置他的导航项。
因此,对于您的配置,navigationItem
可以自动影响导航控制器的唯一视图控制器是具有表视图的导航控制器(导航控制器的直接子项)或者被推到其上的任何一个(一个)使用寻呼机视图控制器?)。