【问题标题】:How do I add a UINavigationBar completely programmatically?如何完全以编程方式添加 UINavigationBar?
【发布时间】:2015-06-12 22:36:28
【问题描述】:
我试图弄清楚,给定一个UIViewController 子类,如何向它添加一个UINavigationBar。所有问题和答案似乎都嵌入到导航控制器中(在这种情况下不可能)或通过情节提要,但我需要完全在代码中完成。
我只是将它添加为视图控制器视图的子视图吗?在我将它固定到topLayoutGuide 之后它会变成topLayoutGuide,这将是添加它之前的状态栏吗?或者我应该在视图控制器上设置一个我无法弄清楚的属性,而不是添加它?
【问题讨论】:
标签:
ios
objective-c
uiview
uiviewcontroller
uinavigationbar
【解决方案1】:
您在正确的轨道上,您只需像添加任何其他视图一样添加为子视图。状态栏的技巧是将自己设置为 navigationBar 委托并在委托方法中返回 UIBarPositioningTopAttached
.....
self.customNavigationBar.delegate = self;
[self.addSubview self.navigationBar];
....
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
return UIBarPositioningTopAttached;
}