Чтобы разместить панель навигации на контроллере модального представления в конструкторе интерфейсов (и настроить элементы кнопок панели, которые вызывают действия в вашем контроллере подробного представления), вам необходимо пройти уровень косвенности (ваша панель навигации будетв одном .xib, и детали вашего подробного представления будут в другом xib):
создайте файл xib, содержащий объект контроллера навигации, и установите его корневой контроллер представления вконтроллер подробных представлений, который вы хотите отобразить модально с помощью навигационной панели.
добавьте элементы панели кнопок на панель навигации подробного контроллера и подключите их к IBActions в объекте контроллера подробного просмотра.
ваш подробный контроллер должен находиться в отдельном файле .xib
создать объект "загрузчик", который просто существует для храненияiboutlet контроллера навигации и установите его в качестве объекта-владельца файла этой xib:
@interface Loader : NSObject
@property (nonatomic, retain) IBOutlet UINavigationController *navVC;
@end
@implementation Loader
@synthesize navVC;
- (void) dealloc
{
[navVC release];
[super dealloc];
}
@end
Ваша xibфайл, содержащий контроллер навигации, будет выглядеть следующим образом:
Убедитесь, что объект контроллера навигации подключен к выходу navVC объекта "Loader", и убедитесь, что элементы панели кнопокподключен к желаемому IBActions контроллера вашего детального вида.
Затем вы представляете все это, используя этот код:
Loader *loader = [[[Loader alloc] init] autorelease];
[[NSBundle mainBundle] loadNibNamed:@"ModalVC" owner:loader options:nil];
[self presentModalViewController:loader.navVC animated:YES];