Я пытаюсь разработать приложение (игру) с этой архитектурой:
- Главный вид - это контроллер naviagtion, основанный на скрытой навигационной панели
- в главном окне Мне нужна легкая информация
кнопка, чтобы показать опции / кредиты
flipsideview
- это обратное изображение должно иметь другое
NavigationCotroller с правой панелью
кнопка «Готово» системная кнопка
Проблема заключается в том, что при перевернутом обзоре не отображается кнопка «Готово», и, похоже, отображается главный контроллер навигации ...
Это код.
AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
Основной вид (загружен из XIB). Выдержка только из showInfo:
-(IBAction) showInfo:(id)sender {
FlipSideViewController *controller = [[FlipSideViewController alloc] initWithNibName:@"FlipSideView" bundle:nil];
controller.delegate = self;
controller.title = @"Info";
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
navController.navigationBar.barStyle = UIBarStyleBlackOpaque;
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemStyleDone
target:controller action:@selector(done:)];
navController.navigationItem.rightBarButtonItem = doneButton;
controller.navController = navController;
[self presentModalViewController:navController animated:YES];
[doneButton release];
[controller release];
[navController release];
}
- (void)flipsideViewControllerDidFinish:(FlipSideViewController *)controller {
[self dismissModalViewControllerAnimated:YES];
}
FlipSideView. В XIB у меня есть только пустое представление с выходом, связанным с представлением UIViewController.
@protocol FlipsideViewControllerDelegate;
@interface FlipSideViewController : UIViewController {
id <FlipsideViewControllerDelegate> delegate;
UINavigationController *navController;
}
@property (nonatomic,assign) id <FlipsideViewControllerDelegate> delegate;
@property (nonatomic,retain) UINavigationController *navController;
-(IBAction)done;
@end
@protocol FlipsideViewControllerDelegate
- (void)flipsideViewControllerDidFinish:(FlipSideViewController *)controller;
@end
}
Файл реализации ...
- (void)viewDidLoad
{
[super viewDidLoad];
self.navController.navigationItem.title = @"Pippo";
}
#pragma mark - User Methods
- (IBAction)done {
[self.delegate flipsideViewControllerDidFinish:self];
}
Результат:
- Отображение основного вида без навигации
бар
- Нажмите на кнопку информации
- Flipsideview показывает с анимацией
и панель навигации с заголовком «Инфо», а не «pippo»
а не кнопка "Готово" справа ...
Где я не прав ??