如何完全以编程方式添加 UINavigationBar?

Posted

技术标签:

【中文标题】如何完全以编程方式添加 UINavigationBar?【英文标题】:How do I add a UINavigationBar completely programmatically? 【发布时间】:2015-06-12 22:36:28 【问题描述】:

我试图弄清楚,给定一个UIViewController 子类,如何向它添加一个UINavigationBar。所有问题和答案似乎都嵌入到导航控制器中(在这种情况下不可能)或通过情节提要,但我需要完全在代码中完成。

我只是将它添加为视图控制器视图的子视图吗?在我将它固定到topLayoutGuide 之后它会变成topLayoutGuide,这将是添加它之前的状态栏吗?或者我应该在视图控制器上设置一个我无法弄清楚的属性,而不是添加它?

【问题讨论】:

【参考方案1】:

您在正确的轨道上,您只需像添加任何其他视图一样添加为子视图。状态栏的技巧是将自己设置为 navigationBar 委托并在委托方法中返回 UIBarPositioningTopAttached

.....

self.customNavigationBar.delegate = self;
[self.addSubview self.navigationBar]; 

....

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar 
    return UIBarPositioningTopAttached;

【讨论】:

以上是关于如何完全以编程方式添加 UINavigationBar?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式向 UIView 添加约束

如何以编程方式将文件添加到解决方案?

使用完成按钮以编程方式添加 UINavigationBar

以编程方式在 UIView 上添加 UITextField Swift

以编程方式向 C# 中的文件添加安全权限

如何在显示旋转时以编程方式更改布局约束