2

ナビゲーション ツールバーの右上に 2 つのシステム ボタンを追加する方法を知っている人はいますか? カスタム ボタンを追加できることは知っていますが、システム ボタンも追加できない理由がよくわかりません。

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

編集して、テーブルの行を並べ替えたり削除したりします。新しい行を追加するには、追加します。

タブバーがあるため、下部のツールバーを使用できません。

誰か助けてくれませんか?

4

3 に答える 3

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;
  }
} 
于 2009-07-31T04:56:43.067 に答える
0

デフォルトのナビゲーション バーでは、何かが欠けていない限り、3 つのボタンしか表示できません。左側に 1 つ、中央に 1 つ、右側に 1 つ。小さいボタンを作成し、十分なスペースがあると思われる場合でも、タッチはすべて同じボタン (右または左にリンクされている方) に登録されます。Google のナビゲーション バーのような機能を利用したい場合は、自分で実装することをお勧めします。それほど難しいことではなく、必要な機能を正確に取得できます。あなたがこれを行うことにした場合、SOは難しい部分をガイドできると確信しています.

于 2009-07-29T02:20:11.517 に答える
0

UINavigationItem にカスタム ビューを使用するとどうなるでしょうか。

myViewController.navigationItem.titleView = myCustomView;

そこにボタンがない場合、titleView は右端まで拡大する可能性があると思います。右ボタンがない場合、タイトル テキストのスペースが増えることに気付きました。

次に、ラベル (タイトル用) と 2 つのボタンをそのカスタム ビューに追加できます。

于 2009-07-31T03:51:18.190 に答える