Ответ 1
Удалите текущий сегмент.
Прикрепите сегмент от источника контроллера просмотра к месту назначения (а затем назовите его).
Теперь ваш метод нажатия кнопки должен выглядеть примерно так:
Objective-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)
}
}
Ключевым моментом здесь является то, что контроллер представления происхождения должен быть тем, который вы перетаскиваете, чтобы создать сегмент, а не кнопку или какой-либо другой элемент пользовательского интерфейса.
Лично я перехватываю ВСЕ мои segues таким образом, даже те, которые должны запускаться на простых нажатиях кнопки без какой-либо проверки или логики позади них. Это достаточно просто, чтобы вызвать его по методу кнопок.
И я обычно объявляю все мои имена segue как постоянные строки где-то в проекте.