Mein Problem ist, dass ich nach einer Möglichkeit gesucht habe, sowohl Storyboard als auch xib zu verwenden . Aber ich kann keinen richtigen Weg finden, um das Storyboard programmgesteuert zu laden und anzuzeigen. Das Projekt wurde mit der Entwicklung von xib gestartet, und jetzt ist es sehr schwierig, alle xib-Dateien im Storyboard zu verschachteln. Also suchte ich nach einer Möglichkeit, dies im Code zu tun, wie bei alloc, init, push
viewControllers. In meinem Fall habe ich nur einen Controller im Storyboard: UITableViewController
mit statischen Zellen mit einigen Inhalten, die ich anzeigen möchte. Wenn jemand weiß, wie man mit xib und Storyboard ohne großes Refactoring richtig arbeitet, werde ich mich über jede Hilfe freuen.
quelle
[sb instantiateInitialViewController]
ist praktisch, wenn Sie mit dem Standard-Ansichts-Controller der Szene beginnen möchten.[self presentViewcontroller]
Logik durch diese Zeilen in der folgenden Reihenfolge: 1)self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
2)self.window.rootViewController = vc;
und 3)[self.window makeKeyAndVisible];
. Sie können diemodalTransitionStyle
Leitung wahrscheinlich auch entfernen , da dies kein modaler Übergang vom App-Delegaten ist.Swift 3
Swift 2
Voraussetzung
Weisen Sie Ihrem View Controller eine Storyboard-ID zu.
IB> Identitätsinspektor anzeigen> Identität> Storyboard-ID
Swift (Vermächtnis)
Edit: Swift 2 in einem Kommentar von Fred A. vorgeschlagen.
Wenn Sie ohne Navigationscontroller verwenden möchten, müssen Sie Folgendes verwenden:
quelle
self.storyboard
Linie 1 & 2Geben Sie im Attributinspektor die Kennung für diesen Ansichts-Controller an, und der folgende Code funktioniert für mich
quelle
Versuche dies
quelle
In Swift
NavigationController und PushController können Sie ersetzen
quelle
Für Swift 3 und 4 können Sie dies tun. Es wird empfohlen, den Namen des Storyboards gleich StoryboardID zu setzen.
und dann können Sie Ihr Storyboard wie folgt in Ihren ViewController laden:
}}
Wenn Sie ein neues Storyboard erstellen, setzen Sie einfach den gleichen Namen auf StoryboardID und fügen Sie den Storyboard-Namen in Ihre Aufzählung " StoryBoardName " ein.
quelle
Sie können jederzeit direkt zum Root-Controller springen:
quelle
Mit der folgenden Erweiterung können Sie a
Storyboard
und die zugehörige Erweiterung ladenUIViewController
. Beispiel: Wenn Sie einUIViewController
benanntesModalAlertViewController
und ein Storyboard mit dem Namen "ModalAlert" haben, zLädt sowohl das als
Storyboard
undUIViewController
undvc
ist vom TypModalAlertViewController
. Hinweis Angenommen, die Storyboard-ID des Storyboards hat denselben Namen wie das Storyboard und das Storyboard wurde als Is Initial View Controller markiert .quelle