繁体   English   中英

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]
  }

结果如下(“视图”层次结构也可见):

在此处输入图片说明

我以为我可能需要在情节提要中添加“条形按钮项目”,但这似乎无法实现我想要执行的代码中这样做的目的。

我也尝试调试视图层次结构,但在那儿看不到它们。

有人知道为什么这些不会出现吗?

在您的代码中,您使用self.navigationItem但是您没有导航项,因为您的控制器未嵌入在导航控制器中。

您已经添加了导航栏,但是需要添加导航项。

您必须将导航项拖到导航栏,然后(通过插座)绑定到代码。 之后应该是这样的:

@IBOutlet weak var navItem: UINavigationItem!

然后您可以说:

self.navItem.leftBarButtonItem = settingsButton
self.navItem.rightBarButtonItems = [viewLogButton, saveToLogButton]

您应该在文档概述中看到它,如下所示:

导航项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM