У меня есть приложение, которое закрывает вложенные контроллеры модального представления через NSNotificationCenter. Уведомление получено от VC, к которому я хочу вернуться, и все VC пропали.
В более глубоких ВК ...
NSNotification * notification = [NSNotification notificationWithName:@"BACKTOINDEXNOTE" object:nil];
[[NSNotificationCenter defaultCenter] postNotification:notification];
В ВК я бы хотел вернуться к
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) name:@"BACKTOINDEXNOTE" object:nil];
// more init code
}
return self;
}
-(void)dismiss
{
[self dismissModalViewControllerAnimated:YES];
}
Это работает на устройстве iOS 5 с проектом, развернутым для 4.0+
Я надеюсь, что это помогает. Если вы используете это, он будет масштабироваться для поддержки большего количества VC между вашим текущим VC и тем, к которому вы хотите отказать, без изменения этого кода