13

このトピックについてはたくさんあることは知っていますが、コードを機能させることができません。iOS5を実行してiPad用にビルドしていますが、ナビゲーションバーの片側に2つのボタンが表示されません。

助けていただければ幸いです、ありがとう。

編集:

私がテストしたいくつかのコードは、その中viewDidLoadには何もしません。

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(save)];

    UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc] initWithTitle:@"Delete" style:UIBarButtonItemStylePlain target:self action:@selector(delete)];

    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:saveButton,deleteButton,nil];
4

2 に答える 2

31

iOS 5ではUINavigationItem、配列プロパティを取得しました:rightBarButtonItemsおよびleftBarButtonItemsleftBarButtonItemとに関連してそれらがどのように機能するかについての詳細と、ここのクラスリファレンスで rightBarButtonItem戻るボタンを見ることができます。

つまり、ボタンから配列を作成し、ナビゲーションアイテムのプロパティをそのように設定するだけです。この機能を使用して、ナビゲーションバーの左右両方に2つのボタンを配置しました。

編集

配列の作成に使用したコードは次のとおりです。私のボタンはすべてInterfaceBuilderで作成されました。

self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:backButton, settingsButton, nil];
self.navigationItem.leftItemsSupplementBackButton = YES;

self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:continueButton, saveButton, nil];
于 2012-07-05T20:16:22.453 に答える
0

これらの回答は、デフォルトのナビゲーションバーを使用していることを前提としています。(つまり、UINavigationViewControllerを使用すると、iOSが「無料」で提供するものです。)

カスタムUINavigationBarを使用している場合は、最初のUINavigationItemを取得する必要があります。(デフォルトのUINavigationItemを上書きすることもできます。)そこから、leftBarButtonItemsプロパティとrightBarButtonItemsプロパティを設定できます。

このようなもの:

// customNavBar points to my custom UINavigationBar
navItem = [[UINavigationItem alloc] initWithTitle:@"Details"];
NSArray *navArray = [[NSArray alloc] initWithObjects:navItem, nil];
[customNavBar setItems:navArray];  // This wipes out all existing UINavigationItem objects

NSArray *leftArray = [[NSArray alloc] initWithObjects:itemOk, nil];
NSArray *rightArray = [[NSArray alloc] initWithObjects:itemCancel, nil];
navItem.leftBarButtonItems = leftArray;
navItem.rightBarButtonItems= rightArray;
于 2013-07-03T19:17:17.483 に答える