0

これは UINavigationController の init メソッドです。私はこれを間違っているに違いないと思います。

- (id)init
{
self = [super init];
if (self) {

    self.view.backgroundColor = [UIColor blackColor];

    self.viewController = [[UIViewController alloc] init];

    self.viewControllers = [NSArray arrayWithObject:self.viewController];


    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                               style:UIBarButtonItemStylePlain
                                                              target:self
                                                              action:@selector(done)];
    self.viewController.navigationItem.rightBarButtonItem = button;
    self.navigationBar.barStyle = UIBarStyleBlackTranslucent;

    self.mediaScrollView = [[MediaScrollView alloc] initWithFrame:self.view.bounds];
    self.mediaScrollView.touchDelegate = self;
    self.mediaScrollView.fullScreenDelegate = self;
    [self.viewController.view addSubview:self.mediaScrollView];


}
return self;

}

mediaScrollView がナビゲーション バーの前に表示されます。ナビゲーション バーの後ろに表示されるはずです。

これを呼び出す方法は次のとおりです。

self.mediaVC = [[PDMediaViewController alloc] init];
    self.mediaVC.mediaScrollView.manualMedia = YES;
    self.mediaVC.mediaScrollView.mediaDelegate = self;
    self.mediaVC.mediaScrollView.currentMediaItem = 0;

    self.mediaVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:self.mediaVC animated:YES];
4

2 に答える 2

1

ほとんどの場合、 をサブクラス化しませんUINavigationController。代わりに、のサブクラスを作成UIViewControllersし、通常のUINavigationControllerインスタンスを使用してビュー コントローラーを処理します。

MyViewController *firstViewController = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
[window addSubview:navController.view];

XCode のナビゲーション コントローラー テンプレートを確認してください。

于 2012-07-02T14:22:57.923 に答える
0

UINavigationController をサブクラス化しないでください!

UINavigationController クラスは、階層コンテンツのナビゲーションを管理する特殊なビュー コントローラーを実装します。このクラスは、サブクラス化を意図していません。代わりに、コンテンツの階層的な性質をアプリケーションのユーザー インターフェイスに反映させたい場合は、そのインスタンスをそのまま使用します。このナビゲーション インターフェイスにより、データを効率的に表示できるようになり、ユーザーがそのコンテンツを簡単にナビゲートできるようになります。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

于 2012-07-02T14:30:40.423 に答える