enter image description here我无法在不同 View 上显示不同的导航栏按钮。
我有一个父 View 导航 Controller 和 3 个 subview 。我想做的是在每个 subview 上有不同的导航栏按钮,而不仅仅是通过将它们添加到主 Storyboard上可以实现的相同的 2 个按钮。
我附上了两张屏幕截图,以便您可以看到我的 Storyboard和代码的样子。
最佳答案
在每个 View Controller 中,您可以使用 self.navigationItem 单独进行这些更改。
例如,假设您有一个名为“VC1”的 View Controller ,并且您希望在导航栏中有一个添加按钮。在 VC1 中,重写 viewDidLoad 并执行以下操作:
override func viewDidLoad() {
self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "addFunc")
}
更新: 因此,查看您的教程,我意识到您没有将 subview Controller 推送到导航 Controller ,您只是将它们添加为 subview Controller 。它们是有区别的。每个导航 Controller 都有一组 View Controller (您可以访问:navController.viewControllers)
你可以添加 subview Controller ,但它与其他 Controller 没有任何不同,如果你想实际使用导航 Controller ,你需要将它们推送到导航 Controller 。否则,您将无法访问 navigationItem 或类似的功能。
不要将 View Controller 添加到 ScrollView ,而是使用:
self.pushViewController(childViewController1, animated: true)
如果您绝对希望将其放在 ScrollView 中并为每个 View Controller 拥有不同的导航栏按钮,则必须自己实现此机制。例如,看看这个:
https://github.com/peymanmortazavi/UISwipeViewController
它还没有完善,您必须正确实现布局约束,但它演示了我的意思。
关于ios - Swift - 如何为每个 View 设置不同的导航栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862992/