1

Ich habe eine Unterklasse von UINavigationBar und ich möchte eine Unterklasse von UINavigationController, die diese UINavigationBar Unterklasse verwendet. Ich weiß, wie die Standard festlegen UINavigationController eine benutzerdefinierteEinstellung UINavigationBar Unterklasse in UINavigationController Unterklasse

Navigationsleiste

let navController = UINavigationController(navigationBarClass: CustomNavigationBar.self, toolbarClass: nil)

aber ich in der Lage sein wollen, verwenden Sie eine benutzerdefinierte UINavigationController (programmatisch) zu erstellen, die bereits meine benutzerdefinierten Navigationsleiste als Navigationsleiste Klasse setzt. Ich habe gesehen, wie es bei diesem Link zu tun ist, aber es scheint ein wenig veraltet (2012) und "Hacky AF" - https://stackoverflow.com/a/9610801/2654425. Ich weiß, wie man es in "Storyboard" macht, indem ich die Navigationsbarklasse des UINavigationController setze, aber ich möchte, dass das programmatisch in meinem kundenspezifischen UINavigation Controller erfolgt.

Hier ist eine grundlegende UINavigationBar und UINavigationController Unterklasse:

class CustomNavigationBar: UINavigationBar { 

    override init(frame: CGRect) { 
     super.init(frame: frame) 

    } 
    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 


    } 

    override func draw(_ rect: CGRect) { 
     self.backgroundColor = UIColor.red 
    } 


} 

class CustomNavigationController: UINavigationController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

Ich bin nicht sicher, wo die benutzerdefinierte Navigationsleiste setzen. Jede Hilfe wird sehr geschätzt. :)

+0

versuchen, in viewDidLayoutSubViews Methode hinzuzufügen. –

Antwort

0

Sie sollten festlegen, wenn Sie Ihre UINavigationController-Unterklasse instanziieren. Insbesondere UINavigationController.init (navigationBarClass: AnyClass ?, toolbarClass: AnyClass?). Siehe UINavigationController in Apples Dokumentation.

Verwandte Themen