2012-06-14 4 views
17

Я создаю приложение с помощью iOS 5 SDK. Мне удалось отобразить представления с помощью Seges Storyboard, но я не могу найти подходящий способ вывести текущее представление и вернуться к предыдущему.Воспроизвести текущий вид с помощью Segues/Storyboard на iOS 5

Я не использую navigationController (приложение не имеет верхних или нижних баров).

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

Должен ли я использовать пользовательский Segue с противоположной анимацией и удалением вида в конце? Или есть лучший способ?

ответ

24

Вы можете попытаться позвонить [self dismissViewControllerAnimated:YES completion:nil]; с контроллера, который вы хотите уволить (был ли нажат контроллер или показан модно).

Вот соответствующая документация: UIViewController Class Reference

Представляющий-контроллер отвечает за отклоняя контроллер представления он представлен. Если вы вызовете этот метод на представленном контроллере представления, он автоматически пересылает сообщение в контроллер представления.

+0

Точно, что мне нужно, спасибо. – Jukurrpa

+16

Примечание: это не работает с навигационными контроллерами (для поп). –

+0

Отлично;). Вы сделали мой день :). спасибо – androniennn

53

Раскадровки в iOS 5 не предоставляют способ «без кода», чтобы вернуться с segue - это то, что вам нужно реализовать самостоятельно.

Если вы используете «push» segues (для чего требуется контроллер навигации), используйте метод навигационного контроллера popViewControllerAnimated: для отмены последнего нажатия. (Или другие методы, чтобы отменить более, обратитесь к документации UINavigationController.)

Если вы используете «модальный» перетекает, вызовите dismissViewControllerAnimated:completion: на контроллере представления, который представил текущий контроллер представления (который вы можете получить от своей собственности presentingViewController).


Update: В IOS 6, а затем есть UNWIND перетекает для выезда "назад" в окне редактора. Это все еще не решение без кода, и этого не должно быть, потому что вы должны иметь возможность делать такие вещи, как различие между выводами «Готово» и «Отмена» с модального контроллера. Но это позволяет помещать больше семантического потока вашего приложения в раскадровку. У Apple есть tech note that describes them in detail, и они также покрыты the video from WWDC 2012 Session 407.

16

Просто уточнить.

В классе, который был нажат. Просто подключите следующее, и контроллер и вид выскользнут.

[self.navigationController popViewControllerAnimated:YES]; 
3

Создать тип Segue «Custom» на вашей доске. Это может быть кнопка. Создайте новый класс UIStoryboardSegue с именем «popSegue» В файле popSegue.m добавьте следующее:

-(void)perform{ 
    UIViewController *sourceViewContreoller = [self sourceViewController]; 
    [sourceViewContreoller.navigationController popViewControllerAnimated:YES]; 
} 

-В редакторе раскадровки.

-Выберите Segue и изменить SEGUE класс для "popSegue"

-Установить идентификатора для "popSegue"

Done!

Вы можете использовать один и тот же класс «popSegue» во всем своем проекте.

Надеется, что это помогает

2

Я использую Xcode 5 также и вот как это делается. Во-первых, в файле вид кода, который толкнул другого, создать метод IBAction в .h файле, например, как это:

- (IBAction)exitToHere:(UIStoryboardPopoverSegue *)segue sender:(id)sender; 

Then in the .m file add this: 

- (IBAction)exitToHere:(UIStoryboardPopoverSegue *)segue sender:(id)sender { 

} 

Вы можете добавить любой код очистки вы хотите выполнить в этом методе. Затем перейдите в свою раскадровку и выберите толкаемый вид. Я предполагаю, что у вас есть какая-то кнопка на вид, которую пользователь нажимает, чтобы сигнализировать, что он закончил. Нажмите на эту кнопку, удерживайте клавишу и перетащите ее в зеленую рамку под видом, который является выводом. Отпустите кнопку мыши, но продолжайте удерживать клавишу. Появится всплывающее окно, и ваш метод отобразится в списке. Выберите этот метод. Теперь, когда пользователь нажимает на кнопку, появится вид, и вы вернетесь к методу запуска.

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