ナビゲーション ツールバーの右上に 2 つのシステム ボタンを追加する方法を知っている人はいますか? カスタム ボタンを追加できることは知っていますが、システム ボタンも追加できない理由がよくわかりません。
そして、私は本当にそれが必要です。追加ボタンと編集ボタンが必要です。
編集して、テーブルの行を並べ替えたり削除したりします。新しい行を追加するには、追加します。
タブバーがあるため、下部のツールバーを使用できません。
誰か助けてくれませんか?
次のようなものが機能するはずです (独自の画像とアクション メソッドに置き換えてください)。
#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;
}
}
デフォルトのナビゲーション バーでは、何かが欠けていない限り、3 つのボタンしか表示できません。左側に 1 つ、中央に 1 つ、右側に 1 つ。小さいボタンを作成し、十分なスペースがあると思われる場合でも、タッチはすべて同じボタン (右または左にリンクされている方) に登録されます。Google のナビゲーション バーのような機能を利用したい場合は、自分で実装することをお勧めします。それほど難しいことではなく、必要な機能を正確に取得できます。あなたがこれを行うことにした場合、SOは難しい部分をガイドできると確信しています.
UINavigationItem にカスタム ビューを使用するとどうなるでしょうか。
myViewController.navigationItem.titleView = myCustomView;
そこにボタンがない場合、titleView は右端まで拡大する可能性があると思います。右ボタンがない場合、タイトル テキストのスペースが増えることに気付きました。
次に、ラベル (タイトル用) と 2 つのボタンをそのカスタム ビューに追加できます。