2014-12-25 4 views
0

Я пытаюсь использовать mustPerformSegueWithIdentifier для проверки того, будет ли выполняться мой segue или нет. Проблема заключается в том, что сначала выполняется segue, а затем проверка shouldPerformSegue. В моем приложении это происходит только во время начальной загрузки моего контроллера представления, но успешно работает при исходящих нагрузках.Предотвращение сбоя Segue

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

    if ([identifier isEqualToString:@"gameplay"]) { 
     if ([[NSUserDefaults standardUserDefaults] boolForKey:@"preventSegue"] == YES) { 

      return NO; 
     } 
    } 

    return YES; 
} 
+0

«Проблема заключается в том, что сначала выполняется segue, а затем проверка shouldPerformSegue». Это неверно. Вам нужно лучше описать, что происходит. – matt

+0

Вы вызываете performSegue? Потому что, если вы, он не будет вызывать shouldPerformSegueWithIdentifier. –

+0

Да, я звоню, выполняя segue. Что я должен использовать вместо Майка? – Michael

ответ

0

Может быть вы подключили SEGUE непосредственно из UIButton/UITableViewCell/UIBarButton к следующему контроллеру представления. Удалите этот сегмент, а затем создайте новый отступ от контроллера представления источника до контроллера представления назначения. Вы можете проверить, правильно ли вы это сделали. Если вы выберете сегю, весь контроллер будет подсвечен. Сделав это, дайте это имя в инспекторе атрибутов и нажмите на эту кнопку, напишите performSegueWithIdentifier. Ваш shouldPerformSegueWithIdentifier будет работать так, как ожидалось.

1

Проблема в том, что я звонил performSegueWithIdentifier вместе с shouldPerformSegueWithIdentifier. shouldPerformSegue не был вызван, потому что сначала был вызван performSegueWithIdentifier.

Смежные вопросы