15

あるべきUISegmentedControl場所に、プログラムでナビゲーションバーに を追加しています。titleViewただし、Apple docsで言及されているように、 leftBarButtonItem が nil でない場合titleView、このプロパティは無視されます。

でも戻るボタンも欲しい。彼らが自分のイメージで描いたように!

ここに画像の説明を入力

以下は、私が追加したコードですUISegmentedControl

self.navigationItem.leftBarButtonItem = nil;
UISegmentedControl *statFilter = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Filter_Personnal", @"Filter_Department", @"Filter_Company", nil];
[statFilter setSegmentedControlStyle:UISegmentedControlStyleBar];
self.navigationItem.titleView = statFilter;

UISegmentedControl戻るボタンと一緒に追加する別の方法はありますか?

ありがとうございました。

4

2 に答える 2

23

これを試して

この行を削除 --- >self.navigationItem.leftBarButtonItem = nil;

代わりにこれを追加

UISegmentedControl *statFilter = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Filter_Personnal", @"Filter_Department", @"Filter_Company", nil]];
[statFilter setSegmentedControlStyle:UISegmentedControlStyleBar];
[statFilter sizeToFit];
self.navigationItem.titleView = statFilter;

唯一の変更点は、次の行を追加したことです。

[statFilter sizeToFit];

お役に立てれば !!!

于 2013-03-13T10:58:05.320 に答える
3

UIBarButtonItemの可能性があるカスタムビューを使用してを作成できますUISegmentedControl

次のようなものが機能する可能性があります。

//create segmented control with items
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"One", @"Two", nil]];

//create bar button item with segmented control as custom view
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];

//add segmented control bar button item to navigation bar
[[[self navigationController] navigationItem] setRightBarButtonItem:barButtonItem];

私はこれをテストしていませんが、あなたが必要とするものの正しい線に沿っているはずです。

于 2013-03-13T10:48:11.010 に答える