Mój problem polega na tym, że szukałem sposobu na użycie zarówno scenorysów, jak i Xib . Ale nie mogę znaleźć odpowiedniego sposobu na programowe ładowanie i wyświetlanie scenorysu. Projekt zaczął się rozwijać w Xib, a teraz bardzo trudno jest zagnieździć wszystkie pliki Xib w scenorysie. Szukałem więc sposobu na zrobienie tego w kodzie, tak jak w alloc, init, push
przypadku viewControllers. W moim przypadku mam tylko jeden kontroler w serii ujęć: UITableViewController
który ma statyczne komórki z pewną zawartością, którą chcę pokazać. Jeśli ktoś zna właściwy sposób pracy zarówno z Xibem, jak i Storyboard bez wielkiego refaktoryzacji, będę wdzięczny za wszelką pomoc.
źródło
[sb instantiateInitialViewController]
jest przydatny, jeśli chcesz uruchomić na domyślnym kontrolerze sceny.[self presentViewcontroller]
logikę na te wiersze w następującej kolejności: 1)self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
2)self.window.rootViewController = vc;
i 3)[self.window makeKeyAndVisible];
. Prawdopodobnie możesz również pozbyć sięmodalTransitionStyle
linii, ponieważ nie jest to modalne przejście z delegata aplikacji.Szybki 3
Swift 2
Warunek wstępny
Przypisz identyfikator scenorysu do kontrolera widoku.
IB> Pokaż inspektora tożsamości> Tożsamość> Identyfikator scenorysu
Swift (starsza wersja)
Edycja: Swift 2 zasugerowany w komentarzu Freda A.
jeśli chcesz korzystać bez nawigacji Sterownik musisz użyć w następujący sposób:
źródło
self.storyboard
i połączyć linię 1 i 2W inspektorze atrybutów podaj identyfikator tego kontrolera widoku, a poniższy kod działa dla mnie
źródło
Spróbuj tego
źródło
w szybkim nawigatorze
NavigationController i pushController, który możesz zastąpić
źródło
W przypadku szybkich 3 i 4 możesz to zrobić. Dobrą praktyką jest ustawienie nazwy StoryboardID równej StoryboardID.
a następnie możesz załadować Storyboard do ViewController w następujący sposób:
}
Podczas tworzenia nowej Storyboard po prostu ustaw tę samą nazwę na StoryboardID i dodaj nazwę Storyboard w wyliczeniu „ StoryBoardName ”
źródło
Zawsze możesz przejść bezpośrednio do kontrolera głównego:
źródło
Poniższe rozszerzenie pozwala załadować plik
Storyboard
i jest on powiązanyUIViewController
. Przykład: jeśli maszUIViewController
nazwanąModalAlertViewController
i storyboard o nazwie „ModalAlert” npZaładuje zarówno
Storyboard
iUIViewController
ivc
będzie typuModalAlertViewController
. Uwaga Zakłada, że identyfikator scenorysu ma taką samą nazwę jak scenorys i że scenariusz został oznaczony jako kontroler widoku początkowego .źródło