ios - Swift - 如何为每个 View 设置不同的导航栏?

标签 ios swift navbar

enter image description here我无法在不同 View 上显示不同的导航栏按钮。

我有一个父 View 导航 Controller 和 3 个 subview 。我想做的是在每个 subview 上有不同的导航栏按钮,而不仅仅是通过将它们添加到主 Storyboard上可以实现的相同的 2 个按钮。

我附上了两张屏幕截图,以便您可以看到我的 Storyboard和代码的样子。

所以基本上我正在寻找一些代码来在每个 View 上单独添加栏项目。 [![在此处输入图像描述][2]][2] enter image description here

最佳答案

在每个 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/

相关文章:

ios - iOS 上的 Bootstrap 导航栏问题

android - 在一个风格/目标中使用多个 google-services.json 和 GoogleService-Info.plist 文件

ios - 从rss中获取图片URL

ios - 使用 Set 时,Swift 2.0 : Could not cast value MyApp. MyCustomClass 到 MyAppTests.MyCustomClass

swift - dataTask 中没有更多上下文,表达式类型不明确

jquery - jQuery Mobile 导航栏中每行超过 5 个项目

ios - Xcode INSTRUMENTS 通过/失败日志记录功能在 Xcode 4.6 中似乎已损坏

json - 如何解码不同类型的 JSON 属性?

ios - 通过在 Swift 中添加两个标签而不是标题来自定义导航栏

css - Bootstrap : How to create additional menu items in navbar-collapse