UIBarButtonItems 不会出现在导航栏中
UIBarButtonItems won't appear in Navigation Bar
我有一个 UIViewContoller
有意不嵌入 UINavigationController
中,我想在导航区域中添加自定义按钮。我相信我编写的代码应该可以工作,因为它遵循了我在几个关于 UIBarButtonItem
的线程上发现的建议方法(尽管这些主要与样式有关)。这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
let settingsButton = UIBarButtonItem(title: "Settings", style: .Plain, target: self, action: #selector(self.segueToSettings(_:)))
let saveToLogButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(self.logThisLift(_:)))
let viewLogButton = UIBarButtonItem(title: "Log", style: .Plain, target: self, action: #selector(self.segueToLog(_:)))
self.navigationItem.leftBarButtonItem = settingsButton
self.navigationItem.rightBarButtonItems = [viewLogButton, saveToLogButton]
}
这是结果(视图层次结构也可见):
我想也许我需要在 Storyboard 中添加条形按钮项目,但这似乎违背了像我试图做的那样在代码中这样做的目的。
我也试过调试视图层次结构,但在那里没有看到它们。
有人知道为什么这些不会出现吗?
在您的代码中您使用了 self.navigationItem
但您没有导航项,因为您的控制器未嵌入导航控制器中。
您已经添加了导航栏,但需要添加导航项。
您必须将导航项拖到导航栏,然后绑定到代码(通过插座)。之后应该是这样的:
@IBOutlet weak var navItem: UINavigationItem!
然后你可以说:
self.navItem.leftBarButtonItem = settingsButton
self.navItem.rightBarButtonItems = [viewLogButton, saveToLogButton]
您应该会在文档大纲中看到它,如下所示:
我有一个 UIViewContoller
有意不嵌入 UINavigationController
中,我想在导航区域中添加自定义按钮。我相信我编写的代码应该可以工作,因为它遵循了我在几个关于 UIBarButtonItem
的线程上发现的建议方法(尽管这些主要与样式有关)。这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
let settingsButton = UIBarButtonItem(title: "Settings", style: .Plain, target: self, action: #selector(self.segueToSettings(_:)))
let saveToLogButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(self.logThisLift(_:)))
let viewLogButton = UIBarButtonItem(title: "Log", style: .Plain, target: self, action: #selector(self.segueToLog(_:)))
self.navigationItem.leftBarButtonItem = settingsButton
self.navigationItem.rightBarButtonItems = [viewLogButton, saveToLogButton]
}
这是结果(视图层次结构也可见):
我想也许我需要在 Storyboard 中添加条形按钮项目,但这似乎违背了像我试图做的那样在代码中这样做的目的。
我也试过调试视图层次结构,但在那里没有看到它们。
有人知道为什么这些不会出现吗?
在您的代码中您使用了 self.navigationItem
但您没有导航项,因为您的控制器未嵌入导航控制器中。
您已经添加了导航栏,但需要添加导航项。
您必须将导航项拖到导航栏,然后绑定到代码(通过插座)。之后应该是这样的:
@IBOutlet weak var navItem: UINavigationItem!
然后你可以说:
self.navItem.leftBarButtonItem = settingsButton
self.navItem.rightBarButtonItems = [viewLogButton, saveToLogButton]
您应该会在文档大纲中看到它,如下所示: