0

Unsere aktuelle Designspezifikation beinhaltet derzeit eine UINavigationBar mit Standardbeabstandung für das topItem/barItem und Standardschriftart für den Titel.Unterklasse der UINavigationBar, um das visuelle Standardformat zu haben

Was ist die beste Vorgehensweise dafür? Ich erwäge folgendermaßen vorgehen:

  1. eine UINavigationBar erstellen mit den Abmessungen für das TopItem und barItem Objekte mit Auto-Layoutbeschränkungen gesetzt, alle programatically getan.

  2. Verwenden Sie kein Storyboard für die oben genannten, definieren Sie einfach alle Einschränkungen im Code.

  3. In den Storyboards der aktuellen Ansicht verwenden alle Ansichten mit einer UINavigationBar diese Unterklasse.

Würde das funktionieren? Ist das die beste Praxis?

+0

Sie müssten UINavigationBar Unterklasse und alles neu zu implementieren. UINavigationController unterstützt benutzerdefinierte Klassen für die Navigationsleiste. – Andy

Antwort

0

Ich arbeite jetzt mit App und beschlossen, das gleiche Problem auf diese Weise:

App hat 4 Arten von UINavigationBar für App. Ich habe BaseNavBar erstellt, das von UINavigationBar geerbt wurde. In .xib habe ich 4 UINavigationBar erstellt und verbinde seine Elemente (titleLabel, titleLabel2) mit BaseNavBar.h und Aktionen von Buttons (von 2 bis 4) mit BaseNavBar.m. Alle Designs, die ich in xib erstellt habe.

Ich erstellte BaseViewContoller, die von UIViewController geerbt. In ViewDidLoad initialisiere ich BaseNavBar vom benötigten Typ und weise seine Elemente self.navigationItem zu.

In den meisten Fällen entscheidet BaseViewContoller, welche Art von BaseNavBar es verwenden muss, aber in ViewController (das von BaseViewContoller geerbt wurde) kann ich diesen Typ ändern.

Danach erstelle ich neue ViewControllers und mach dir keine Sorgen mehr über UINavigationBar.

Wenn ich etwas in allen UINavigationBar ändern muss - ich mache es an einem Ort.

Verwandte Themen