IOS Segue "отменить" - PullRequest
       6

IOS Segue "отменить"

12 голосов
/ 25 января 2012

В зависимости от возврата XML, я не хочу, чтобы текущая segue работала на прикосновении UIButton.

Я знаю, что могу выбрать, какую segue я хочу выполнить , но как мне заставить segue не выполнять? Или, по крайней мере, не выполняет любой из доступных segues?

Ответы [ 3 ]

25 голосов
/ 25 января 2012

Если целью развертывания является iOS 6.0 или более поздняя версия, вы можете переопределить метод -[UIViewController shouldPerformSegueWithIdentifier:sender:] для возврата YES, если вы хотите выполнить переход, и NO, если вы этого не сделаете.

Если ваша цель развертывания более ранняя, чем iOS 6.0, вы не получите сообщение shouldPerformSegueWithIdentifier:sender:. Так что в вашей раскадровке не рисуйте переход от кнопки. Вместо этого нарисуйте последовательность из контроллера вида кнопки и присвойте ей идентификатор. Подключите кнопку к IBAction в своем контроллере вида В действии проверьте, хотите ли вы выполнить переход. Если вы хотите выполнить это, отправьте себе performSegueWithIdentifier:sender:, передавая идентификатор, который вы присвоили переходу в раскадровке.

3 голосов
/ 12 декабря 2012

Документация для разработчиков Apple имеет правильный способ отменить переход, управляемый в StoryBoard:

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender

Например:

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
    if ([identifier isEqualToString:@"listPopover"]) {
        if (self.listPopover == nil) {
            // Allow the popover segue
            return YES;
        }
        // Cancel the popover segue
        return NO;
    }
    // Allow all other segues
    return YES;
}
0 голосов
/ 10 февраля 2017

Проверьте эту тему: https://stackoverflow.com/a/42161944/4791032

Вы можете просто проверить это в func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...