Подтвердить что ты не робот

Swift: переход к новому ViewController с помощью кнопки

У меня есть одно приложение просмотра, которое соединяется с синтаксическим разбором и проверяет регистрацию пользователя и обновляет UILabel, говоря "Yay, вы вошли в систему успешно". Теперь я хочу, чтобы он перешел к новому представлению (которое будет основная часть приложения).

Я перетащил новый контроллер представления в раскадровку и Ctrl-перетащил кнопку и связал ее с новым контроллером с помощью show. Однако в тот момент, когда я загружаю приложение и нажимаю кнопку, он переходит прямо к новому виду. Мне нужно его только туда, если вызывается правильная часть инструкции if-else.

Это имеет смысл? Спасибо за помощь. очень признателен.

ИЗМЕНИТЬ

Оператор if:

if usrEntered != "" && pwdEntered != "" {
        PFUser.logInWithUsernameInBackground(usrEntered, password:pwdEntered) {
            (user: PFUser!, error: NSError!) -> Void in
            if user != nil {
                self.messageLabel.text = "You have logged in";
            } else {
                self.messageLabel.text = "You are not registered";
            }
        }
    }

и его расположение находится в файле ViewController.swift

4b9b3361

Ответ 1

Прежде всего, как я объясняю в этом ответе, вам нужно перетащить сегмент из общего UIViewController на следующий UIViewController, то есть вы не должны специально подключать UIButton (или любой IBOutlet, если на то пошло) на следующий UIViewController, если переход условный:

storyboard segue

Вам также потребуется назначить идентификатор для сеанса. Для этого вы можете выбрать стрелку segue и ввести идентификатор в правой панели:

segue identifier

Затем, чтобы выполнить фактический segue, используйте функцию performSegueWithIdentifier в вашем условном выражении, например:

if user != nil {
    self.messageLabel.text = "You have logged in";
    self.performSegueWithIdentifier("segueIdentifier", sender: self)
} else {
    self.messageLabel.text = "You are not registered";
}

где "segueIdentifier" - это идентификатор, который вы назначили вашему сеансу в раскадровке.