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

时间:2016-07-22 14:27:16

标签: ios swift uinavigationcontroller uinavigationbar

我有一个自定义的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?'

任何人都知道为什么?这可能是一个错误。 我正在使用Xcode 8 beta和Swift 3

1 个答案:

答案 0 :(得分:3)

super.init(navigationBarClass:期望一个类(AnyClass)作为参数。 你有一个对象navBar,它是UINavigationBar类的对象(而不是类),你试图将对象设置为类参数。使用next进行正确的初始化:

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

对于酒吧高度,您可以尝试使用以下内容:https://stackoverflow.com/a/20440989/2739795