2016-07-22 3 views
4

У меня есть пользовательский 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

ответ

3

super.init(navigationBarClass: ожидает класса (AnyClass) в качестве параметра. У вас есть объект navBar, который является объектом (не классом) класса UINavigationBar, и вы пытаетесь установить объект в параметр класса. Используйте следующий для правильной инициализации:

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

Для высоты бара вы можете попробовать использовать что-то вроде этого: https://stackoverflow.com/a/20440989/2739795

+0

Спасибо, что работал как шарм! –