【发布时间】:2019-01-10 10:08:45
【问题描述】:
我有一个UINavigationItem 我正在尝试显示一个UIBarButtonItem。
现在的问题是我正确添加了它们,它们可以正常工作并且 100% 正常工作。
但它们没有显示在 UINavigationBar 上。
现在对于流程,我正在执行以下操作。
1- 我隐藏了后退按钮,像这样
self.navigationItem.setHidesBackButton(isBackHidden, animated: false)
2- 当用户点击UIButton 时,我在运行时使用函数动态添加这两个按钮。
let rightBarItem = UIBarButtonItem(title: "Button.Done".localized, style: .plain, target: self, action: #selector(self.saveButtonTapped))
navigationItem.rightBarButtonItem = rightBarItem
let leftBarItem = UIBarButtonItem(title: "Button.Cancel".localized, style: .plain, target: self, action: #selector(self.cancelButtonTapped))
navigationItem.rightBarButtonItem?.tintColor = .red // still nothing
navigationItem.leftBarButtonItem = leftBarItem
3- 我尝试使用这些功能,结果仍然相同
self.navigationItem.setLeftBarButton(UIBarButtonItem?, animated: Bool)
self.navigationItem.setRightBarButton(UIBarButtonItem?, animated: Bool)
总结:
我尝试更改tintColor,因为它们在功能上正常工作,我认为这是颜色问题。
我尝试在DispatchQueue.main.async {} 中使用它们,认为这可能是线程问题,因为它是动态的。
我已经调试并检查了UINavigationItem 中的项目并且它们存在。
主要是怎么回事:
这些按钮未显示,但在UINavigationItem 上点击它们的位置时它们可以正常工作。
【问题讨论】:
-
那么,您正试图在运行时根据特定事件添加一个“左”栏按钮项,对吗?
-
是的,左右,@AhmadF
-
我尝试了您的第二个代码 sn-p,它对我来说效果很好...您认为是否有任何额外的信息可以提一下?
-
@AhmadF 他们在点击 navItem 时工作,但他们没有显示..
-
.... bde amoslk,它有效.. 你能把它贴出来并解释原因和问题所在
标签: ios swift uinavigationitem