1

ビューの 1 つからモーダル ビューを表示しようとしています。発表者ビューは、カスタム ビューからのモーダルとして既に表示されています。私の問題は、表示された新しいモーダル ビューに [完了] ボタンが表示されないことです。以下は私のコードです。何か不足していますか?

    UIViewController *aViewController = [[UIViewController alloc] init];
    UINavigationController *aNavigationController = [[[UINavigationController alloc] initWithRootViewController:aViewController] autorelease];
    [aNavigationController.navigationBar setBarStyle:UIBarStyleBlack];
    UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissMe)];
    [aNavigationController.navigationItem  setLeftBarButtonItem:aBarButtonItem];
    MyView *aView = [[MyView alloc] initWithFrame:self.view.frame];
    [aViewController.view addSubview:aView];
    [self presentModalViewController:aNavigationController animated:YES];
    [aViewController release];

- (void)dismissMe {
    [self dismissModalViewControllerAnimated:YES];
}

ここに画像の説明を入力

4

1 に答える 1

3

質問を理解している場合は、次のような解決策を試すことができます: 実際のビューから表示するモーダル ビュー コントローラーのorメソッドに
これを記述します。viewDidLoadinit

UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self selector:@selector(dismissMe)];
self.navigationController.leftBarButtonItem = done;

メソッドを実装しますdismissMe
代わりに、プレゼンター コントローラーで、新しいモーダル コントローラーを表示する場所に次のように記述します。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controllerYouWantToShow];
[self presentModalViewController:navController animated:YES];

明らかに、controllerYouWantToShow表示したいView Controllerを指すポインター/変数です...私は通常、あなたのような問題を解決するためにこれを行います...ただし、テストしていないため、コードを確認してください:)
それが役立つことを願っています!

于 2012-06-22T22:17:01.057 に答える