Вот некоторый код, который создает новое представление в контроллере навигации и показывает его «сверху» (представляет его модально).
Здесь есть несколько ключевых вещей:
Если вы представляете навигационный контроллер модально, вам необходимо установить его левую и правую кнопки (если вам нужно), прежде чем initWithRootController и presentModally
Даже если ваше текущее представление находится в navController, если вы представляете его модально, его нужно обернуть в UINavigationcontroller (есть некоторые сообщения SO, охватывающие это)
UINavigationController с presentModalViewController
MyView *myView = [[MyView alloc] initWithNibName:@"MyView" bundle:nil];
UIBarButtonItem *cancelBtn = [[UIBarButtonImageItem alloc] init...
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] init...
[[myView navigationItem] setLeftBarButtonItem:cancelBtn];
[[myView navigationItem] setRightBarButtonItem:doneBtn];
[cancelBtn release];
[doneBtn release];
// Edit purchase in full modal view.
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView];
[[self navigationController] presentModalViewController:navController animated:YES];
Затем в представлении, которое вы только что представили модально, вы можете отклонить его.Например, в этом коде кнопки сохранения и отмены, добавленные выше, связаны с этими методами IBAction в контроллере представления, который вы представили модально:
- (IBAction)cancel:(id)sender
{
NSLog(@"cancel");
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)save:(id)save
{
NSLog(@"done");
// do work here
[self dismissModalViewControllerAnimated:YES];
}