Простой SEGUE, который работал в течение нескольких месяцев, проведенных с помощью этой команды:Простой переход не работает в Xcode 7
[self performSegueWithIdentifier:@"ExpirationWarningSegue" sender:self];
дает теперь эта ошибка:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not perform segue with identifier 'ExpirationWarningSegue'. A segue must either have a performHandler or it must override -perform.'
Что? Это череп. Я перетаскиваю команду из одного UIViewController
в другой в раскадровке. Я не пишу код для этого. Этот сегмент определяется в раскадровке с помощью этого точного идентификатора.
Почему это происходит сейчас, когда я обновился до xcode 7, когда он работал нормально?
Возможность: В интерфейсе Builder он настроен как пользовательский, и именно поэтому он просит вас переопределить/выполнить/выполнитьHandler ... Измените его на все, что угодно, но не обычай. – Larme
Я не понимаю здесь голосов. Это законный вопрос. Этот код работал отлично, пока xcode 7/ios 9 не начал отклонять его. Да, я неправильно использовал пользовательский segue - это ответ на проблему. Но сообщение об ошибке не объяснило это, на мой взгляд, и Apple вдруг решила отказаться от этой структуры. – Alex
Я не спускал вниз, но быстрый поиск в Google с помощью «A segue должен либо иметь performHandler, либо он должен отменять выполнение». будет указывать на проблему. Ну, в другом случае ответ мата довольно лучше, чем тот, который был найден там: http://stackoverflow.com/questions/32309909/perform-segue-with-identifier-wont-work-in-swift-2 – Larme