Если целью развертывания является iOS 6.0 или более поздняя версия
Вы можете просто внедрить метод shouldPerformSegueWithIdentifier:sender:
в контроллере представления исходного кода.Сделайте так, чтобы этот метод возвращал YES
, если вы хотите выполнить переход, или NO
, если вы этого не делаете.
Если ваша цель развертывания более ранняя, чем iOS 6.0
Вам потребуетсяизмените способ соединения вашего сегмента в раскадровке и напишите немного больше кода.
Сначала настройте переход от контроллера представления кнопки к контроллеру представления назначения, а не непосредственно от кнопки до назначения.Присвойте sege идентификатор, такой как ValidationSucceeded
.
Затем подключите кнопку к действию на контроллере вида.В действии выполните проверку и выполните переход или покажите предупреждение в зависимости от того, прошла ли проверка успешно.Это будет выглядеть примерно так:
- (IBAction)performSegueIfValid:(id)sender {
if ([self validationIsSuccessful]) {
[self performSegueWithIdentifier:@"ValidationSucceeded" sender:self];
} else {
[self showAlertForValidationFailure];
}
}