Приложение на основе UINavigationController с FlipSideView с другим UINavigationController - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь разработать приложение (игру) с этой архитектурой:

  • Главный вид - это контроллер 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» а не кнопка "Готово" справа ...

Где я не прав ??

1 Ответ

0 голосов
/ 29 апреля 2011

Разве вы не получаете две навигационные панели с элементами навигации на FlipsideViewController?Сейчас я борюсь с этой ошибкой.

...