IOS7, Segue и раскадровки-как создать без кнопки?


в настоящее время у меня есть представление входа в систему и представление приложения, я успешно реализовал проверку на представлении входа в систему, и мне нужно программно перейти к представлению приложения при успешной проверке.

Я понимаю, что могу добавить сегмент к кнопке входа в систему, а затем назвать его программно таким образом...

[self performSegueWithIdentifier:@"LoginSegue" sender:sender];

но это, очевидно, будет срабатывать при нажатии кнопки (так как сегмент был создан прикрепленным к кнопке). Я только что прочитал, что я следует создать кнопку (и скрыть ее), а затем сделать программный вызов segue - это кажется немного "неправильным".

Как создать сегмент, который не привязан к какому-либо конкретному событию пользовательского интерфейса?

1   59  

1 ответ:

удалить текущий сегмент.

прикрепите segue от начала посмотреть контроллер к месту назначения (а затем назовите его).

теперь ваш метод нажатия кнопки должен выглядеть примерно так:

Цель-C:

- (IBAction)validateLogin:(id)sender {
    // validate login
    if (validLogin) {
        [self performSegueWithIdentifier:@"mySegue" sender:sender];
    }
}

Swift:

@IBAction func validateLogin(sender: UIButton) {
    // validate login
    if validLogin {
        self.performSegueWithIdentifier("mySegue", sender:sender)
    }
}

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

enter image description here

лично я подключаю все свои сегменты таким образом, даже те, которые должны срабатывать при простых нажатиях кнопок без какой-либо проверки или логики за ними. Это достаточно легко вызвать его из метода кнопки.

и, я обычно объявляю все мои имена segue как постоянные строки где-то в проекте.