Mam trzy widoki (widok 1 sprawdza połączenie z serwerem, widok 2 pokazuje główną treść, view3 pokazuje stronę wsparcia) i utworzyłem je w serii ujęć bez kodowania. Po uruchomieniu aplikacji na iOS widok 1 pokazuje spinner podczas sprawdzania połączenia z serwerem. Jeśli sprawdzanie połączenia jest zakończone, chcę przejść do widoku 2, a jeśli to się nie uda, chcę przejść do widoku 3. Widok 1 jest tylko dla sprawdzenia połączenia i nie chcę wracać do tego widoku. Myślę, że nie potrzebuję kontrolera nawigacyjnego, czy?wykonuj segue w viewDidLoad() bez kontrolera nawigacji w Swift
W storyboardzie połączyłem wszystkie widoki z seques. W moim kontroler widoku widzenia 1 to zrobić:
override func viewDidLoad() {
super.viewDidLoad()
let result:Bool = server.isServerAvailable(myURL)
if (result == true) {
performSegueWithIdentifier("ConnectionCheckToMain", sender: self)
}
else {
performSegueWithIdentifier("ConnectionCheckToSupport", sender: self)
}
}
Ale to segue w funkcji viewDidLoad()
nie działa, ale nie wiem dlaczego. Dodałem przycisk w widoku, aby to sprawdzić. Zaimplementowałem ten sam kod, jak w viewDidLoad()
i działa dobrze. Po kliknięciu przycisku ładuje się następny widok.
Czy jest jakiś pomysł, dlaczego kod nie działa?
Thx, ale teraz pojawia się następujący komunikat: ** Ostrzeżenie: próba przedstawienia na którego widok nie jest w hierarchii okna ** Gdzie mój błąd? –
Martin
Rozwiązałem problem, zmigrowałem kod do viewDidAppear(). – Martin
Próbowałem tego rozwiązania, ale pojawia się błąd ** AnyObject nie można przekształcić w 'UIViewController' czy chciałeś użyć 'jak!' zmusić downcast? ** dlaczego? –