右の BarButton を正常に追加したナビゲーション バーがあります。NavigationBar と BarButton はどちらもプログラムで作成されます。ここで、私の要件に従って、ナビゲーション バーに 2 つの右の BarButtons を追加する必要があります。誰でもこれを行う方法を教えてもらえますか? 私のアプリは ios4 を対象としています。
6 に答える
このコードはあなたのためにトリックを行います、
NSArray *barButtonItems= [[NSArray alloc] initWithObjects:self.addButton,self.sortbyButton,nil];
self.navigationItem.rightBarButtonItems=barButtonItems;
ここで、addButtonとsortbyButtonは2つの別個のBarButtonアイテムです。
遅すぎることはわかっていますが、最近直面しました。コードで UIView を作成し、ボタンをサブビューとしてこのビューに追加します。[[UIBarButtonItem alloc] initWithCustomView:buttons] を使用して ToolbarButton を作成します。
必要に応じて、このツールバー ボタンを左または右の barbuttonItem として割り当てます。
@Matthias、ドキュメントに記載されているように、rightBarButtonItemsプロパティは iOS 5 以降で使用でき、この関数は iOS 4 でもサポートする必要があります。
したがって、UISegmentControl はこれを実現するための最良の方法です。
UINavigationItem
1のドキュメントで説明されているように、 の配列を指定できるプロパティrightBarButtonItems
(および) があります。右 (インデックス 0) から左 (インデックス n-1) に表示されます。leftBarButtonItems
UIBarButtons
アプリケーションが iOS 4 以降をターゲットにしている場合は、UISegmentControl を取得して、2 つのセグメントを含める必要があります。値が変更されたアクション イベントをキャッチし、どのセグメントが選択されているかを確認して、それに応じて操作します。
イメージをセグメントに設定して、見栄えを良くすることもできます。
NSArray *segmentTextContent = [NSArray arrayWithObjects:
NSLocalizedString(@\"Group By\", @\"\"),
NSLocalizedString(@\"Filter By\", @\"\"),
nil];
UISegmentedcontrol *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.frame = CGRectMake(0, 0, 125, 30);
[segmentedControl addTarget:self action:@selector(toggleUnit) forControlEvents:UIControlEventValueChanged];
segmentedControl.tintColor = [UIColor lightGrayColor];
defaultTintColor = [segmentedControl.tintColor retain];
self.navigationItem.rightBarButtonItem = segmentedControl;
[segmentedControl release];