IOS7, Segue и раскадровки-как создать без кнопки?
в настоящее время у меня есть представление входа в систему и представление приложения, я успешно реализовал проверку на представлении входа в систему, и мне нужно программно перейти к представлению приложения при успешной проверке.
Я понимаю, что могу добавить сегмент к кнопке входа в систему, а затем назвать его программно таким образом...
[self performSegueWithIdentifier:@"LoginSegue" sender:sender];
но это, очевидно, будет срабатывать при нажатии кнопки (так как сегмент был создан прикрепленным к кнопке). Я только что прочитал, что я следует создать кнопку (и скрыть ее), а затем сделать программный вызов segue - это кажется немного "неправильным".
Как создать сегмент, который не привязан к какому-либо конкретному событию пользовательского интерфейса?
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, а не кнопку или любой другой пользовательский интерфейс элемент.
лично я подключаю все свои сегменты таким образом, даже те, которые должны срабатывать при простых нажатиях кнопок без какой-либо проверки или логики за ними. Это достаточно легко вызвать его из метода кнопки.
и, я обычно объявляю все мои имена segue как постоянные строки где-то в проекте.