早速試してみた。こうすると。
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(touched:)]; UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(touched:)]; self.navigationBar.topItem.rightBarButtonItems = [NSArray arrayWithObjects:item1, item2, nil];こうなる。
複数ボタンが標準でサポートされたのか。
横向きも問題なし。
スペースも入れられる。
3個もいける。
左も leftBarButtonItems が用意されている。
今回は試していないが戻りボタン(左のとんがっているやつ)がある場合はその右側に表示されるとのこと。
左右にボタンを配置するとタイトル→左→右の順で優先される。下記は左右に4つのボタンを指定した時の表示。幅が不足している場合は表示されない。
横向きにすると全部表示された。
タイトルが長いとその分表示幅が狭くなるので表示個数が減る。
なお右ボタンの場合、右から順番に配置される。
ソースコード
GitHub からどうぞ。
MultiNavigatorItemButtons at 2012-01-05 from xcatsan/iOS5-Sample - GitHub
関連情報
UINavigationBar に複数の UIBarButtonItem を配置するには - 24/7 twenty-four seven
UIToolbar をカスタムビューとして配置する方法。iOS 4 ではこういった方法しか無い。