2012-04-23 2 views
10

Я не знаю почему dismissViewControllerAnimated:completion:. Я просто хочу это сделать.Как отклонить viewController с раскадрой из push segue?

Я начинаю с

[self performSegueWithIdentifier:@"my_segue" sender:self]; 

Но я называю распускать, чем ничего не происходит. Я могу создать другой segue, но он создает новый контроллер представления.

Мой вопрос: Как отклонить performSegueWithIdentifier:sender:?

ответ

0

[my_segue_view_controller dismissModalViewControllerAnimated: YES]?

(не уверен, но это работает в моей практике)

+3

Вы должны избегать использования функции 'offsetModalViewControllerAnimated:', поскольку [docs] (http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html) говорят, что это осуждается. Вместо этого следует использовать 'shutViewControllerAnimated: complete:'. –

0

performSegueWithIdentifier:sender: сам не отвергались, это просто метод, который называется инициировать имя SEGUE. То, что происходит в сеге, представляет большой интерес.

Вы правы, что вы должны вызвать dismissViewControllerAnimated:completion:, и оно должно быть созвано представлением контроллера представления, который ранее названный представлен вида контроллера с помощью presentViewController:animated:completion:. Для получения дополнительной информации см. the UIViewcontroller docs.

31

У вас есть Панель навигации в ViewController, что призванию:

[self performSegueWithIdentifier:@"my_segue" sender:self]; 

Если да, то вы должны будете использовать:

[self.navigationController popViewControllerAnimated:YES]; 

совать вид из стека. Там в один переход вызова, но рамки, кажется, называют:

presentViewController:animated:completion: 

или:

pushViewController:animated: 

в зависимости от обстоятельств.

Ray

+0

Я пытался использовать разные комбинации, которые были сосредоточены вокруг функции rejectViewController ... ни один из них не работал. Счастлив, я нашел и попробовал, ваше предложение «popViewController». Не уверен, что это правда, но я, безусловно, вижу возможную связь между PUSH segue и необходимостью для взаимного POP, чтобы получить его из стека. – BonanzaDriver

2

Вы можете просто позвонить

[self dismissViewControllerAnimated:YES completion:nil]; 

от контроллера представления, так как контроллер представления подтолкнула Segue.

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