У меня возникли проблемы с удалением коллекции объектов UIViewController.Я не знаю элегантного способа одновременного закрытия всех загруженных модальных объектов UIViewController.
Я использую «раскадровку» в Xcode 4, , но я не использую Segues для сопоставления экранов. Я использую динамический код, например так:
Все начинается в MainViewController.m.Я загружаю [myMenuController] (список меню).Когда пользователь выбирает параметр из меню, он загружает [myTicketController].После некоторого взаимодействия с пользователем он загружает [myNextController], и вы видите шаблон.Я загружаю несколько UIViewControllers динамически (здесь нет переходов):
//from MainViewController.m - Load the main menu
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
myMenuController = (MyMenuController *)[storyboard instantiateViewControllerWithIdentifier:@"MyMenuController"];
myMenuController.settingsModel = settingsModel;
myMenuController.ticketStatusHandler = data;
myMenuController.rootDataModel = dataModel;
[myMenuController setModalPresentationStyle:UIModalPresentationFullScreen];
[self dismissModalViewControllerAnimated:NO];
[self presentModalViewController:myMenuController animated:YES];
///////////////////////////////////////////////////////////////////////////
//from MyMenuController.m - Load the add ticket menu
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
myTicketController = (MyTicketController *)[storyboard instantiateViewControllerWithIdentifier:@"MyTicketController"];
myTicketController.settingsModel = settingsModel;
myTicketController.ticketStatusHandler = data;
myTicketController.rootDataModel = dataModel;
[myTicketController setModalPresentationStyle:UIModalPresentationFullScreen];
[self dismissModalViewControllerAnimated:NO];
[self presentModalViewController:myTicketController animated:YES];
///////////////////////////////////////////////////////////////////////////////
//from MyTicketController.m - Load the next screen
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
myNextController = (MyNextController *)[storyboard instantiateViewControllerWithIdentifier:@"MyNextController"];
myNextController.settingsModel = settingsModel;
myNextController.rootDataModel = dataModel;
[myNextController setModalPresentationStyle:UIModalPresentationFullScreen];
[self dismissModalViewControllerAnimated:NO];
[self presentModalViewController: myNextController animated:YES];
Итак, я дошел до конца приложения и загрузил еще несколько UIViewControllers.Допустим, я загружаю еще 4 или 5 UIViewControllers после того, как [myNextController] был загружен.
Есть ли общий способ выгрузить все UIViewController, находящиеся в памяти, и просто перезагрузить [myMenuController]?