Gewusst wie: überschreiben trait-Sammlung für die erste UIViewController? (mit Storyboard)

Ich eine app haben, die gezielte iOS8 und initial view controller ist UISplitViewController. Ich benutze storyboard, so dass es freundlich zu instanziieren, alles für mich.

Weil mein design brauche ich SplitViewController beide master-und detail-Ansichten im hochformat auf dem iPhone. Also ich bin auf der Suche nach einer Möglichkeit zum überschreiben der Eigenschaft Kollektion für dieses UISplitViewController.

Fand ich, dass ich verwenden können,

 override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator!) { ... }

aber, leider, es sind nur die Methoden zu überschreiben, untergeordnete Steuerungen Merkmale Sammlungen:

setOverrideTraitCollection(collection: UITraitCollection!, forChildViewController childViewController: UIViewController!)

und ich kann nicht so tun, für sich selbst in meinem UISplitViewController Unterklasse.

Überprüfte ich eine Beispiel-app Adaptive Fotos von Apple. Und in dieser app Autor spezielle TraitOverrideViewController als root und etwas Magie in seine viewController setter zu machen, es funktioniert alles.

Es sieht schrecklich für mich. Gibt es irgendeine Möglichkeit um zu überschreiben Eigenschaften? Oder Wenn nicht, wie kann ich verwalten, um die Verwendung der gleichen hack mit storyboard? In anderen Worten, wie wird Spritzen einige viewController als root nur mit traits für meine UISplitViewController mit storyboard?

  • Warum muss es schrecklich Aussehen? AAPLTraitOverrideViewController.m ist kaum mehr als 20 Zeilen code. Sollte es dauert vielleicht 10 Minuten zu übersetzen, dass in Swift und dann müssen Sie nicht haben, um es zu betrachten wieder.
  • siehe update. Und Nein, ich glaube nicht, dass diese Art der code frei zu halten. Endlich jetzt muss ich erklären, meine colleges, was es ist und warum wir einen benötigen. Ich kann mir nicht Grund, über jede Zeile, die macht mich schlecht fühlen. Warum müssen wir didMoveToParentViewController? Oder warum müssen wir shouldAutomaticallyForwardRotationmethods wenn es veraltet ist?
  • und die Beispiel-app nicht überprüfen Charaktereigenschaften auf den laden, so wird es in falsche Bedingung wenn Sie starten Sie es im portrait... mein code oben Erben dieses Problem. Wird aktualisieren.
InformationsquelleAutor Ilya Belikin | 2014-08-25
Schreibe einen Kommentar