Вам необходимо использовать шаблон делегата, чтобы уведомить модальный «родитель» о том, что он должен закрыть модальный контроллер представления (анимированный: НЕТ) и вытолкнуть себя из стека (анимированный: ДА).
Этоименно то, что происходит в приложении «Календарь» - просто обратите внимание на то, что происходит с заголовком панели навигации, когда вы подтверждаете удаление события - вы можете быстро увидеть, как заголовок меняется с «Редактировать» на «Сведения о событии», поскольку это представление отключается.стек навигации.
Итак, в двух словах, если мы говорили о приложении календаря, в вашем контроллере модального представления создайте протокол с помощью метода, подобного didConfirmEventDeletion
:
@protocol ModalViewDelegate <NSObject>
- (void)didConfirmEventDeletion;
@end
@interface ModalViewController...
@property (nonatomic, assign) id<ModalViewDelegate> delegate;
@end
И реализация:
@implementation ModalViewController
- (void)deleteEventMethod
{
...
if ([self.delegate respondsToSelector:@selector(didConfirmEventDeletion)])
[self.delegate didConfirmEventDeletion];
}
Затем в вашем родительском контроллере представления объявите себя в качестве делегата для модального объекта и реализуйте didConfirmEventDeletion
:
- (void)didConfirmEventDeletion
{
[self dismissModalViewControllerAnimated:NO];
[self.navigationController popViewControllerAnimated:YES];
}
PS: может быть несколько опечатоккак я написал этот код из памяти ...