[iOS] iOS5 から標準で UINavigationBar に複数のボタンを配置することができるようになった

2012年1月5日木曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

UINavigationItem の API に iOS5 から rightBarButtonItems があることに気がついた。複数形ということは...?

早速試してみた。こうすると。
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 ではこういった方法しか無い。



Responses

Leave a Response

人気の投稿(過去 30日間)