Как представить контроллер просмотра и убрать все остальные?

У меня около 20 View Controllers, соединенных вместе с модульными и Push-сегментами. Теперь, на последнем контроллере просмотра, я хочу снова вернуться к первому диспетчеру просмотра, как если бы пользователь перезапустил приложение. К сожалению, когда я делаю это с

[UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InitViewController"]];
[self presentViewController:viewController animated:YES completion:nil];

все предыдущие контроллеры представлений не выгружаются. Вызывается не один метод viewDidUnload. Как это может быть сделано?

0
nl ja de
используйте навигационный контроллер вместо модального. это будет просто.
добавлено автор Vinayak Kini, источник

2 ответы

Метод instantiateViewController создает новую копию вашего контроллера вида. Ваши существующие контроллеры представлений не выгружаются, потому что iOS не знает, что вы хотите «вернуться», так сказать. Он не может выгрузить любой из существующих контроллеров представлений, поскольку они все еще находятся в иерархии навигации. То, что вы действительно хотите сделать, это «перемотать» вашу раскадровку каким-то образом.

К счастью, из iOS 6 есть намного лучший способ сделать это через unwinding . Это позволяет вам «отступать» в своем раскадровке прямо к началу, что похоже на то, что вы хотите сделать. В видеороликах WWDC есть несколько примеров и прохождение, и вы также можете посмотреть на этот существующий вопрос SO:

Что такое Unwind segues и как вы их используете?

1
добавлено

Я обнаружил, что это можно сделать легко, вызвав функцию rejectViewControllerAnimated: completion: на первом контроллере представления в иерархии. К счастью, это все, что нужно для выполнения того, что я хотел :-)

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.