2016-07-22 11 views
4

Ich habe eine benutzerdefinierte UINavigationController, die ich über mein Storyboard zugreifen und ich möchte die Höhe der Navigationsleiste anpassen, indem Sie eine benutzerdefinierte Navigationsleiste erstellen. Hier ist, was ich bisher:Fehler beim Erstellen einer UINavigationBar in benutzerdefinierten UINavigationController-Klasse

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) 

In der letzten Zeile ich diese Störung erhalten

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

Wer weiß, warum? Könnte es ein Fehler sein. Ich verwende Xcode 8 Beta und Swift 3

Antwort

3

super.init(navigationBarClass: erwartet eine Klasse (AnyClass) als Parameter. Sie haben ein Objekt navBar welches Objekt (nicht Klasse) der UINavigationBar Klasse ist und Sie versuchen, Objekt zu Klassenparameter zu setzen. Verwenden Sie als nächstes für korrekte Initialisierung:

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

Für Barhöhe Sie könnten versuchen, so etwas zu verwenden: https://stackoverflow.com/a/20440989/2739795

+0

Danke, die wie ein Charme! –