2014-09-18 5 views
1

Я, похоже, не в состоянии сделать это правильно, поэтому я попытаюсь объяснить все, что могу. У меня есть контроллер контроллера 1, а затем в контроллере просмотра один я затем создаю другое представление, чтобы в основном показать, что мышление нависает над текущим представлением (позволяет называть его 2). У этого представления теперь есть кнопка, и мне нужно вернуться к просмотру 0, в котором все началось. поэтому я создал segue, а затем я пытаюсь выполнить segue, но никуда не денусь. так вот как я попытался это сделать. Ввиду 1 у меня есть этотunind segue программно

// this is in the nearmeView controller 
-(void)BackToStart{ 
[self performSegueWithIdentifier:@"unwind" sender:self]; 
//dismissViewControllerAnimated:completion: 

} 

в всплывшем зрения у меня есть это.

NearMeViewController * goBackToBeggining = [[NearMeViewController alloc]init]; 
    [goBackToBeggining BackToStart]; 

однако я получаю сообщение об ошибке, которое говорит об этом?

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<NearMeViewController: 0x19af9600>) has no segue with identifier 'unwind'' 

Теперь я знаю, что я должен быть не в порядке, чтобы правильно понять, как я должен это делать? что я пропажу? Я прочитал этот пост, но это не помогло многим идеям? Unwind segue not being triggered

+1

вы можете вызвать разматывания SEGUE непосредственно с кнопки. Вы не создаете экземпляр нового контроллера представления для его запуска. Возможно, посмотрите здесь http://pragmaticstudio.com/blog/2013/2/5/unwind-segues – Paulw11

+0

Paulw это не отвечает на мой вопрос. Я поставил тестовый проект и разместил его здесь. – Miguel

ответ

2

Отклоненные сегменты сложны. Однако для этого случая вам даже не нужен; просто получите свой BackToStart звонок [self.navigationController popViewControllerAnimated:YES]. Однако, если вы используете раскадровки и нужно использовать разматывания SEGUE, вы должны добавить IBAction метод к контроллеру целевого вида, и он должен принять UIStoryboardSegue аргумент:

- (IBAction)comeToPapa:(UIStoryboardSegue *)segue { 
    // ... whatever 
} 

Затем, в вашем ребенке просмотреть сцену раскадровки контроллера, ctrl + перетащить все триггеры разматывания и перетащить ее на зеленый значок «Выход» контроллера детского просмотра в заголовке сцены. Появится список доступных разрывов; выберите тот, который вы только что создали в родительском контроллере представления.

Here's what Apple says about it.

+0

Я попытался использовать '[self.navigationController popViewControllerAnimated: YES]', и ничто не происходит. – Miguel

+0

Вы были правы Я идиот благодарен за ответ. Я понял свою проблему. – Miguel

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