Ich bin neu in der iOS-Entwicklung und das kann eine einfache Frage sein. Meine Anwendung wird viele View-Controller haben, die ähnliche Eigenschaften haben. Ich habe eine Basisansicht-Controller-Klasse erstellt, welche Unterklassen UIViewController. Alle anderen View-Controller bilden eine Unterklasse der Basis-View-Controller. Die Eigenschaften, die ich in der Basisansicht-Controller-Klasse festlege, werden jedoch nicht übernommen. Zum Beispiel sollten die Schaltflächen der Navigationsleiste alle die Farbe Grün haben, aber die Standardfarbe Blau, wenn ich die App erstelle.Kann nicht Eigenschaften von Basis UIViewController Klasse
Hier ist die Basis-View-Controller-Klasse:
class BaseViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.leftBarButtonItem?.tintColor = UIColor.greenColor()
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.greenColor()
}
Dies ist der Code für andere Ansicht-Controller, der die Basis-View-Controller über eine Unterklasse:
class AboutViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = NSLocalizedString("About", comment: "About page title")
}
habe ich das Web durchsucht und SO ähnliche Fragen, konnte aber keine Antwort finden. Ich sehe nichts grundsätzlich falsch mit meinem Code. Ich verwende Xcode 7.2.1 und teste auf iOS 8+. Auch getestet in Xcode 7.2.3 Beta, hatte aber ähnliche Ergebnisse.
Ich habe gerade versucht, ein neues Projekt zu erstellen und konnte das Problem nicht reproduzieren. Sie können sich selbst davon überzeugen, indem Sie ein neues Projekt erstellen und 'viewDidLoad' überschreiben, genau wie Sie es beschrieben haben. Dies bedeutet, dass das Problem irgendwo anders in Ihrer Codebasis liegt. –
@RudolfAdamkovic Vielen Dank für Ihre Eingabe. Ich habe gerade ein neues Master/Detail-Projekt erstellt. Der einzige Zusatz, den ich gemacht habe, war das Erstellen einer neuen Basis-Tableview-Controller-Klasse, die die Unterklassen UITableViewController bildet. Ich habe die viewDidLoad-Methode überschrieben, um das linke und das rechte barButtonItems auf eine bestimmte Farbe zu setzen. Ich habe die MasterViewController-Klasse von diesem Basisansicht-Controller erben lassen und die Farben wurden noch nicht geerbt. Ich denke, dass ich hier etwas verpasse, aber immer noch nachschaue. – ussd84