在自定义 UINavigationController 类中创建 UINavigationBar 时出错

Posted

技术标签:

【中文标题】在自定义 UINavigationController 类中创建 UINavigationBar 时出错【英文标题】:Error creating a UINavigationBar in custom UINavigationController class 【发布时间】:2016-07-22 14:27:15 【问题描述】:

我有一个自定义 UINavigationController,我可以从我的故事板访问它,我想通过创建自定义导航栏来自定义导航栏的高度。这是我目前所拥有的:

var navBar = UINavigationBar(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main().bounds.width, height: 70.0))
navBar.barTintColor = UIColor(red: 155.0/255.0, green: 155.0/255.0, blue: 155.0/255.0, alpha: 1.0)
super.init(navigationBarClass: navBar, toolbarClass: nil)

在最后一行我收到此错误

Cannot convert value of type 'UINavigationBar' to expected argument type 'AnyClass?'

有人知道为什么吗?会不会是bug。 我正在使用 Xcode 8 beta 和 Swift 3

【问题讨论】:

【参考方案1】:

super.init(navigationBarClass: 需要一个类 (AnyClass) 作为参数。 您有一个对象navBar,它是UINavigationBar 类的对象(不是类),并且您正在尝试将对象设置为类参数。使用 next 进行正确初始化:

super.init(navigationBarClass: UINavigationBar.self, toolbarClass: nil)

对于条形高度,您可以尝试使用以下内容:https://***.com/a/20440989/2739795

【讨论】:

以上是关于在自定义 UINavigationController 类中创建 UINavigationBar 时出错的主要内容,如果未能解决你的问题,请参考以下文章

织梦CMS如何在自定义表单页调用arclist标签啊,怎么在自定义表单页调用无效!

在自定义回调中访问验证数据

在自定义页面中创建自定义路由

在自定义操作中启用/禁用功能

何时在自定义 UIVIew 中添加 CAAnimation?

如何在自定义对话框上显示进度对话框?