3

次のコードは、AppleのNavBarサンプルコードから直接取得したものです。これを、モーダルで表示されているアプリのビューのviewDidLoadメソッドに入れましたが、機能しません。

UIBarButtonItem *addButton = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"AddTitle", @"")
                                                               style:UIBarButtonItemStyleBordered
                                                              target:self
                                                              action:@selector(addAction:)] autorelease];
self.navigationItem.rightBarButtonItem = addButton;

助言がありますか?

4

4 に答える 4

2

わかりました解決策を説明しました:

presentModalViewController:animated:viewControllerをモーダルに表示しますが、これにはがないUINavigationBarため、次のことができます。

  1. viewControllerのペン先にを追加UINavigationBarし、そこに[追加]ボタンとセットアップに必要なすべてのものを追加します。
  2. :を使用pushViewController:animatedして、ナビゲーションスタックにあるviewControllerをモーダルに表示しUINavigationBar、ボタンを追加することができます
  3. 最初のviewControllerがではない場合UINavigationController、を使用してpushViewController:animated:も解決されないためUINavigationController、viewControllerをrootViewControllerとしてモーダルに提示できます。
 YourViewController *viewController =[[[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil] autorelease];
    UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease];
    [self.navigationController presentModalViewController:navController animated:YES];

これのいずれかが役立つことを願っています

于 2011-09-23T05:02:21.533 に答える
1

他のビューを表示するページでこれらのコード行を使用する必要があります。

sceondController *obj=[[[sceondController alloc] initWithNibName:@"sceondController" bundle:nil] autorelease];
        UINavigationController *navController=[[[UINavigationController alloc] initWithRootViewController:obj] autorelease];

        [self.navigationController presentModalViewController:navController animated:NO];

2番目のビューでは、ナビゲーションボタンの作成に使用しているのと同じコードを使用します。

それはあなたの問題を解決するかもしれません。

于 2011-09-23T04:37:18.320 に答える
0

ビューコントローラは実際にはUINavigationControllerであり、他のすべてが適切に配置されていると思います。その場合、私は2つのことを変更します。

  1. UIBarButtonItemを自動リリースしません。これはビューコントローラでは信頼できない傾向があるため、クリーンアップ時にデロックするもののリストにボタンを追加します

  2. セッター機能を使ってボタンを設定します。これが私のナビゲーションコントローラーで動作する私のコードです

    clearAllButton = [[UIBarButtonItem alloc] initWithTitle:@ "Clear All" style:UIBarButtonItemStylePlain target:self action:@selector(rightButtonPressed :)];

    [[自己ナビゲーションアイテム]setRightBarButtonItem:clearAllButton];

于 2011-09-23T04:18:47.297 に答える
-1

実際のデバイスでアプリを実行します。iOS6では、シミュレーターでは機能しません。

于 2012-10-22T13:57:46.693 に答える