Ich werde ähnliche Eigenschaften auf alle meine Navigation Controller in den verschiedenen View-Controller mit Ausnahme einiger Navigationselemente und natürlich die Titel verwenden.swift - UINavigationController Erweiterung funktioniert nicht
Ich habe eine Erweiterung geplant, um es anrufen zu können und meine Standardeinstellungen zu haben; es macht jedoch nichts. Der Code funktioniert, wenn ich ihn einfach in die eigentliche Klasse lege, aber nicht, wenn ich die SetDefaults aufruft.
Erweiterungen:
extension UINavigationController {
func setDefaults(titleText: String){
let appDel = UIApplication.sharedApplication().delegate as! AppDelegate
//Set title label
let label = UILabel()
label.font = UIFont(name: appDel.regularDefaultFont, size: 16)
label.text = titleText
label.kern(1.0)
label.sizeToFit()
self.navigationItem.titleView = label
//Set white background tint color
self.navigationBar.barTintColor = UIColor.whiteColor()
//Set navigation bar bottom line
let bottomBorderRect = CGRect(x: 0, y: UIScreen.mainScreen().bounds.height, width: UIScreen.mainScreen().bounds.width, height: 1)
let bottomBorderView = UIView(frame: bottomBorderRect)
bottomBorderView.backgroundColor = UIColor(r: 250, g: 250, b: 250)
navigationBar.addSubview(bottomBorderView)
}
}
Anruf zu SetDefaults von Klasse mit einem Navigation:
self.navigationController.SetDefaults("Login")
Können Sie einen Haltepunkt in der Verlängerung eingestellt und sehen, ob es erreicht wird? – kabiroberai
stellen Sie sicher, dass Sie 'setDefaults' auf dem rechten Navigationscontroller aufrufen. Wenn Sie UISplitViewController verwenden, ist die eigene Navigationssteuerungseigenschaft des View-Controllers möglicherweise nicht die auf dem Bildschirm – Luke
kabiroberai, ich habe es versucht und es kommt dorthin. @Luke Ich rufe die setDefaults im View-Controller auf, den ich gerade gezeigt habe. Ist das richtig? Überprüfen Sie meinen Kommentar zu der Antwort unten, um den Code anzuzeigen, den ich verwende, um den Ansichtscontroller anzuzeigen. – Walker