2013-08-17 7 views
0

Im пытается уволить popover изнутри своего содержимого, и я знаю, что unind segues - это правильный способ сделать это, и он отлично работает, когда я создаю раскручивание с помощью раскадровки, подключая кнопку значок выхода.Невозможно выполнить размотку segue программно

Но я застрял в выполнении того же действия программно.

Это моя раскадровки иерархия:

[Navigation Controller]
v
[Main View Controller]
v
(поповер Segue)
v
[ "B" Tab Bar Controller ]
v
[Контроллер навигации]
v
["C" View Controller]

So. У меня есть табличный вид в моем «C» View Controller и, нажав на его ячейку - я хочу сделать некоторый код, а затем полностью размотаю все это до первого Main View Controller.

Простой, но неправильный способ сделать это - отправить уведомление на главный контроллер просмотра и отключить контроллер popover. Или через делегата или что-то в этом роде.

Но я хочу понять, как использовать методы «popTo» в этой ситуации.

Простой

[self.navigationController popToViewController:[AppModel sharedInstance].mainViewController animated:YES]; 

просто сбой приложения с ошибкой «Пробовал совать в контроллере представления, который не существует.»

и им путать об этом

+0

Я прохожу через процесс создания разворота, который вы программно вызываете в моем ответе на этот другой вопрос: http://stackoverflow.com/a/17607083/1271826 – Rob

+0

спасибо. это именно то, что я искал. –

ответ

0

Вы создавшего поповер с seque, так что если у вас есть ссылка, где вы хотите отдохнуть в то:

- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue 
{ 
} 

Иногда лучше создать Popovers программно так как их легче уволить ... Посмотрев на некоторый код, я написал некоторое время назад:

[myPopoverController dismissPopoverAnimated:YES];