Możliwe jest zastąpienie domyślnego kontrolera widoku z storyboardu, aby wyświetlić zamiast niego inny kontroler? Wszystko to oczywiście dzieje się w AppDelegate.ios zmienić domyślny kontroler widoku storyboard w czasie wykonywania
5
A
Odpowiedz
10
@ Martol1ni Chciałem użyć twojej odpowiedzi, ale chciałem też trzymać się z daleka od niepotrzebnego bałaganu, więc trochę zmodyfikowałem twój kod. Jednak dałem ci +1 za inspirującą odpowiedź.
Umieściłem wszystkie następujące elementy na kontrolerze domyślnym.
- (void)gotoScreen:(NSString *)theScreen
{
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *screen = [self.storyboard instantiateViewControllerWithIdentifier:theScreen];
[app.window setRootViewController:screen];
}
A tam, gdzie pojawia się logika, zadzwonię w razie potrzeby.
if(myBool == YES) {
[self gotoScreen:@"theIdentifier"];
}
5
Zdecydowanie osadzę rootView w UINavigationController, więc nie masz dwóch, ale trzech widoków. Ten nigdy nie jest uruchamiany, tylko kontroluje wszystkich innych. Następnie zaimplementuj w nim metody:
- (void) decideViewController {
NSString * result;
if (myBool) {
result = @"yourIdentifier";
}
else {
result = @"yourOtherIdentifier";
}
self.navigationController.navigationBarHidden = YES; // Assuming you don't want a navigationbar
UIViewController *screen = [self.storyboard instantiateViewControllerWithIdentifier:@"view1ident"];
[self.navigationController pushViewController:screen animated:NO]; // so it looks like it's the first view to get loaded
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self decideViewController];
}
Nigdy nie wygląda na załadowanie pierwszego widoku. Jeśli korzystasz z NIBS, możesz zrobić wszystko od AppDelegate ...
Powiązane problemy
- 1. Obecny kontroler widoku storyboard z delegata aplikacji?
- 2. Zmienić ustawienia narodowe w czasie wykonywania?
- 3. Android - skalowanie widoku (układu) w czasie wykonywania
- 4. WPF: Jak zmienić CurrentUICulture w czasie wykonywania
- 5. jak zmienić typ instancji w czasie wykonywania
- 6. Jak zmienić lokalizację strony w czasie wykonywania
- 7. Jak zmienić rozszerzenie pliku w czasie wykonywania
- 8. PresentModalViewController w Storyboard programowo iOS 5
- 9. Czy mogę wstawić kolumnę w widoku listy w czasie wykonywania?
- 10. jak zdobyć rootviewcontroller ios storyboard
- 11. Dziwne ostrzeżenie zwalniające kontroler widoku modalnego
- 12. Jak zmienić typ UIBarButtonItem w UINaviagationBar w czasie wykonywania?
- 13. Jak zmienić język w czasie wykonywania w java swing
- 14. Jak zmienić konfigurację extraParams proxy w czasie wykonywania w extjs?
- 15. Jak zmienić rozmiar formantu użytkownika w WPF w czasie wykonywania
- 16. Storyboard + lokalizacja bazy + plik .strings nie jest lokalizowany w czasie wykonywania
- 17. Jak zaktualizować UITableView w czasie wykonywania, po załadowaniu widoku
- 18. Przycisk tworzenia widoku popover anchor w czasie wykonywania
- 19. Ustawienia strony kodowania (domyślny kontroler)
- 20. Objective-C: Jak zmienić klasę obiektu w czasie wykonywania?
- 21. Czy można zmienić właściwości WebReference w czasie wykonywania?
- 22. Czy mogę zmienić pamięć executorów Sparka w czasie wykonywania?
- 23. Android, jak zmienić język aplikacji w czasie wykonywania
- 24. Czy mogę zmienić ustawienia Silverlight poza przeglądarką w czasie wykonywania?
- 25. Jak zmienić Spring @Scheduled fixedDelay w czasie wykonywania
- 26. ios: jak odrzucić modalny kontroler widoku, a następnie pop pchnąłem kontroler widoku
- 27. xcode4.2.1 - storyboard - Kontroler nawigacyjny - Kolor paska tytułu
- 28. Wciśnij inny kontroler widoku w widok UITabBarController.
- 29. Swift ios 8 zmienić tytuł czcionki w widoku tabeli
- 30. „viewWillTransitionToSize” nie jest wywoływana w iOS 9, gdy kontroler widoku jest przedstawione modalne
Domyślny ViewController jest zadeklarowany w info.pList w najnowszych pakietach SDK. Czy ma sprawdzić coś na starcie, a następnie zdecydować, co viewcontroller do push? – Martol1ni
@ Martol1ni tak, to, co powiedziałeś, jest dokładnie tym, czego szukam. – Jacksonkr
Czy używasz kontrolera UINavigationController? – Martol1ni