2013-08-19 2 views
5

У меня есть эта странная проблема, почему-то мой segue работает некорректно.Приемник не имеет выхода с идентификатором исполнения

У меня есть две настройки segues, в зависимости от состояния одной настройки, определяют, как он выбирает segue. Один из них работает как шарм, а другие получают «Получатель не имеет SEGUE с идентификатором»

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 

// check if registered already 
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"registered"] == YES) { 
    // Registered 

    // Give the logo some time to show before moving on 
    [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(splashLoadedRegistered:) userInfo:nil repeats:NO]; 
} else { 
    // Register 

    // Give the logo some time to show before moving on 
    [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(splashLoaded:) userInfo:nil repeats:NO]; 
} 
} 



-(void)splashLoaded:(id)sender 
{ 
//This one works 
[self performSegueWithIdentifier:@"registerSegue" sender:self]; 
} 

-(void)splashLoadedRegistered:(id)sender 
{ 
//This one does not work 
[self performSegueWithIdentifier:@"registeredSegue" sender:self]; 
} 

Вот снимок экрана моей раскадровки.

Screenshot

Things отметить:

  1. Я проверил орфографию Segue.

  2. Это единственная раскадровка в приложении, и я проверил, чтобы убедиться, что это была единственная настройка в info.plist и в резюме проекта.

  3. Я сбросил симулятор и очистил проект.

  4. Сег идет от ViewController, а не от View.

Любая помощь с этим очень ценится.

+0

Возможный дубликат: [Получатель не имеет идентификатора с идентификатором] (http://stackoverflow.com/questions/12015531/receiver-has-no-segue-with-identifier) ​​ –

+2

Я вижу, что вы используете 'segue' и' seque '(g против q) взаимозаменяемо. Если вы это делаете и в реальных идентификаторах, это вызывает проблему. –

+0

Сбой вашей программы –

ответ

10

Не было ответа на мой вопрос. Проблема кажется простой ошибкой в ​​xcode. После смены устройства в симуляторе segue работает нормально. Он даже работал после того, как сменил его на тип устройства, в котором была проблема.

+0

У меня была эта проблема с физическим устройством и выяснилось, что просто удаление приложения, а затем его запуск из Xcode снова решил эту проблему. – arik

+0

Из любопытства, какую версию xcode вы использовали? Во время моего первоначального поста я работал 4.5. – EliteTech

+1

Я запускал последнюю не-бета-версию Xcode 5, build 5A3005. – arik

0

Я обнаружил, что если вы откроете файл панели рассказов в исходном редакторе, вы увидите, что segues помещается в неправильный раздел, он должен находиться в секции соединения контроллера вида. Xcode 5 иногда помещает segues в неправильное место в дереве XML. Отредактируйте дерево вручную.

0

Попробуйте переименовать свой сегмент как в StoryBoard, так и в ручном режиме в ViewController. Иногда это случается, когда вы удаляете предыдущий сеанс с тем же именем. Или вы создали два segues с тем же именем и удалили один из них.

0

Для меня я должен был убедиться, что мой segue идет правильным путем. Убедитесь, что все ваши стрелки в редакторе раскадровки идут правильно!

1

Основываясь на original poster's own answer, I , перезагрузите «Содержание и настройки» тренажера. Это решило проблему.

Я понимаю, что xCode оптимизирует копирование пакета приложения на устройство, только копируя изменяющиеся вещи. Я бы предположил, что с этим что-то пошло не так, и это не копирование изменений в обработанную раскадровку.

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