我在UINavigationBar
上有UISegmentedControl
。该UIViewController
嵌入从故事情节进行UINavigationController
屏幕截图中,见下图:iOS9:在导航栏中隐藏SegmentedControl后不会出现标题
如果该设备是一个iPad
,我想隐藏UISegmentedControl
并显示出self.title
代替。
在我viewDidLoad
,我有下面的代码:
override func viewDidLoad() {
if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
segmentedControlNavBar.hidden = true
self.title = "Navigation Title"
} else {
segmentedControlNavBar.hidden = false
navigationItem.prompt = "Navigation Title"
self.title = nil
}
}
Resul(从模拟器):
我也试过viewWillAppear
,但无济于事。
如果我从Storyboard
中拿出UISegmentedControl
,UINavigationBar
标题显示正常。
如何隐藏导航栏中的UISegmentedControl
并显示标题?
编辑
override func viewDidLoad() {
super.viewDidLoad()
segmentedControlMain.hidden = true
navigationItem.prompt = nil
title = "Navigation Title"
let items = self.navigationController?.navigationBar.items
print(items?.first?.title)
}
日志:可选( “标题导航”)
我想它的存在,我该如何让UINavigationBar的表现出来?
这些没有工作:
self.navigationController?.view.setNeedsDisplay()
self.navigationController?.navigationBar.setNeedsDisplay()
请看看我的编辑 – user1107173
我想我们需要更多的信息来进行调试这件事,但如果“hidden = true”不起作用有时调用setter方法工作(不要问我为什么)[segmentedControlMain setHidden:YES]; 仔细检查segmentedControlMain和视图之间的连接,也可能会将segmentedControlMain的alpha设置更改为0.0以使其透明 – MrJomp
分段控件已隐藏。但标题没有出现。 – user1107173