0

私はこのアーキテクチャでアプリ(ゲーム)を開発しようとしています:

  • メインビューは、ナビゲーションバーを非表示にしたナビゲーションコントローラーです。
  • メインビューでオプション/クレジットのフリップサイドビューを表示するためのライト情報ボタンが必要です
  • このフリップサイドビューには、「完了」システムボタンへの右バーボタンを備えた別のナビゲーションコトローラーが必要です。

問題は、フリップサイドビューに完了ボタンが表示されず、メインナビゲーションコントローラーが表示されているように見えることです...

これがコードです。

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];

    }

結果は次のとおりです。

  • ナビゲーションバーなしで表示されているメインビュー
  • 情報ボタンをクリックします
  • 右側の「pippo」ではなく「Done」ボタンではなく「Info」というタイトルのアニメーションとナビゲーションバーで表示されているFlipsideview...

どこが間違っているの?

4

1 に答える 1

0

FlipsideViewControllerのnavigationItemsでnavigationBarを2つ取得していませんか? 私は今、このバグと戦っています。

于 2011-04-29T17:36:24.623 に答える