У меня есть три вида (просмотр 1 проверяет соединение с сервером, вид 2 показывает основной контент, view3 показывает страницу поддержки), и я создал их в раскадровке без кодирования. При запуске приложения iOS в представлении 1 отображается счетчик при проверке соединения с сервером. Если проверка соединения прошла, то я хочу перейти к просмотру 2, и если она не удалась, я хочу перейти к просмотру 3. Вид 1 предназначен только для проверки соединения, и я не хочу возвращаться к этому представлению. Итак, я думаю, мне не нужен контроллер навигации, или?выполнить segue in viewDidLoad() без контроллера навигации в Swift
В раскадровке я подключил все виды с секвенциями. На мой взгляд, контроллер зрения 1 Я делаю это:
override func viewDidLoad() {
super.viewDidLoad()
let result:Bool = server.isServerAvailable(myURL)
if (result == true) {
performSegueWithIdentifier("ConnectionCheckToMain", sender: self)
}
else {
performSegueWithIdentifier("ConnectionCheckToSupport", sender: self)
}
}
Но это переход в функции viewDidLoad()
не работает, но я не знаю, почему. Я добавил кнопку на просмотр, чтобы проверить ее. Я реализовал тот же код, что и в viewDidLoad()
, и он отлично работает. При нажатии кнопки загружается следующий вид.
Есть ли идеи, почему код не работает?
Thx, но теперь я получаю следующее сообщение: ** Внимание: Попытка представить на чей вид не в иерархии окон ** Где моя ошибка? –
Martin
Я решил проблему, я перенес код в viewDidAppear(). – Martin
Я пробовал это решение, но получаю сообщение об ошибке ** AnyObject не конвертируется в «UIViewController», вы имели в виду использовать «как!» чтобы заставить downcast? ** почему? –