Вы создаете новый стек навигации. Вам нужно будет добавить свою собственную кнопку «Назад» и установить действие для метода делегата на вызывающем VC, чтобы отклонить ее.
UPDATE:
Кажется, есть много путаницы о том, где и как отстранить ModalViewControllers. В большинстве случаев неправильно делать вызов метода Dismiss из самого модального VC, если вы хотите, чтобы родитель принял решение об увольнении. Вместо этого используйте делегирование. Вот простой пример:
ModalViewController.h:
@protocol ModalViewControllerDelegate
-(void)dismissMyModalVC;
@end
@interface ModalViewController : UIViewController {
id < ModalViewControllerDelegate > delegate;
}
@property (nonatomic, retain) id < ModalViewControllerDelegate > delegate;
// The rest of your class properties, methods here
ModalViewController.m
@synthesize delegate;
...
// Put in the Method you will be calling from that Back button you created
[delegate dismissMyModalVC];
CallingViewController.h:
#import "ModalViewController.h"
@interface CallingViewController : UIViewController
<ModalViewControllerDelegate>
// Rest of class here
CallingViewController.m:
ModalViewController *mvc = [[ModalViewController alloc] initWithNibName:@"ModalViewController" bundle:nil];
mvc.delegate = self
[self presentModalViewController:mvc animated:YES];
...
// The ModalViewController delegate method
-(void)dismissMyModalVC {
// Dismiss the ModalViewController that we instantiated earlier
[self dismissModalViewControllerAnimated:YES];
Таким образом, VC удаляется должным образом от контроллера, который его создал. Этот метод делегата также может быть изменен для передачи объектов (например, когда вы закончите вход пользователя и т. Д.)