2

Моего вид последовательности контроллера следующим образом:Поп к корневому зрению в размотках Segue

А -> (толчок) -> В -> (модальный) -> С

я вернусь от С до B используя разматывающий сегмент, и он работает.

Я хотел бы, однако, чтобы вернуться непосредственно от С до А.

В этом размотки Segue, который находится в B, я пытаюсь выскочить к корневому зрения:

-(IBAction)unwindToBfromC:(UIStoryboardSegue *)segue 
{ 
    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 

и я получаю эту ошибку :

Tried to pop to a view controller that doesn't exist. 

Когда я однако выполнить:

[self.navigationController popToRootViewControllerAnimated:YES]; 

in B в действии кнопки Я возвращаюсь к A без проблем. Что не так?

+0

я нашел хороший и элегантное решение здесь: ссылка – ZviBar

+0

Не похоже, что есть ссылка там ... –

+0

Какая глупая ошибка. Ссылка здесь: http://chrisrisner.com/Unwinding-with-iOS-and-Storyboards – ZviBar

ответ

0

Поскольку C находится в модальном состоянии, нечего всплывать. Поэтому отклоните его.

[self dismissViewControllerAnimated:YES completion:nil];

+0

Когда я отклоняю C таким образом, я вернусь только к B. – ZviBar

+0

My bad! Что делать, если вы используете '[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: 0] анимированный: YES];'? Это немного грязно. – jbouaziz

+0

Тогда ничего не происходит, потому что это модальный, который является корневым представлением для себя. Я нашел хорошее решение и разместил ссылку на него в комментарии к моему ответу. – ZviBar

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