2009-07-28 13 views
2

ナビゲーションツールバーの右上に2つのシステムボタンを追加する方法を知っている人はいますか?私はカスタムボタンが追加できることを知っています、そして、私は本当になぜシステムボタンがこれを行うことができないのか分かりません。ナビゲーションツールバーの2つのボタンの右側

そして私は本当にそれが必要です。私は追加ボタンと編集ボタンが必要です。

テーブル行の並べ替えと削除を編集します。 追加すると、新しい行が追加されます。

私はそこにタブバーがあるので、下のツールバーは使用できません。

誰かが私を助けてくれますか?

答えて

0

デフォルトのナビゲーションバーでは、何かが見つからない限り、3つのボタンしか表示できません。左に1つ、中央に1つ、右に1つ。小さなボタンを作成して十分なスペースがあると思っても、タッチはすべて同じボタン(右または左にリンクされているもの)に登録されます。 Googleのナビゲーションバーのような機能を使いたい場合は、自分で実装することをおすすめします。それは本当に難しいことではありません。あなたが望む機能を正確に得ることができます。あなたがこれをすることに決めたなら、私はSOが難しい部分を通してあなたを導くことができると確信しています。

0

私はあなたのUINavigationItemのカスタムビューを使用したい場合はどうなるのだろうか:

myViewController.navigationItem.titleView = myCustomView; 

私はあなたがそこにボタンを持っていない場合titleViewはすべての道を右に展開されます想像してみてください。右のボタンがない場合は、タイトルテキストのスペースが増えます。

次に、カスタム表示にラベル(タイトル用)と2つのボタンを追加できます。このような

3

何かが(自分自身のイメージやアクションメソッドを置き換えて)動作するはずです:

#define ACTIONEDIT 0 
#define ACTIONADD 1 
... 
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] 
     initWithItems: [NSArray arrayWithObjects: 
     [UIImage imageNamed:@"icon-edit.png"], 
     [UIImage imageNamed:@"icon-add.png"], 
     nil] 
     ]; 
[segmentedControl addTarget:self 
        action:@selector(segmentAction:) 
      forControlEvents:UIControlEventValueChanged]; 

segmentedControl.frame = CGRectMake(0, 0, 90, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.momentary = YES; 
[segmentedControl setEnabled:YES forSegmentAtIndex:ACTIONEDIT]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
         initWithCustomView:segmentedControl]; 

... 

- (void)segmentAction:(id)sender 
{ 
    UISegmentedControl* segCtl = sender; 
    int action = [segCtl selectedSegmentIndex]; 
    switch (action) { 
    case ACTIONADD: 
    [self addToList]; 
    break; 
    case ACTIONEDIT: 
    [self editList]; 
    break; 
    } 
} 
関連する問題