15

titleViewがあるべき場所にナビゲーションバーにUISegmentedControlをプログラムで追加しています。しかし、Apple docstitleViewに記載されていますので、leftBarButtonItemがnilでない場合、このプロパティは無視されますナビゲーションバーのUISegmentedControlに戻るボタンが付いています

しかし、私はバックボタンも持っていたいと思います。彼らは自分のイメージで描いたように!以下は

enter image description here

私は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を追加する別の方法はありますか?

ありがとうございます。

答えて

3

可能であればUISegmentedControlのカスタムビューでUIBarButtonItemを作成できます。

次のような行があります。

//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]; 

私はこれをテストしていませんが、必要なものの右側の線に沿っている必要があります。

[statFilter sizeToFit]; 

希望これを:

+0

お返事ありがとうございます。その間に私は待っていましたが、私はそれをテストするための小さなプログラムを一緒に打ちました。私は2つのView Controllerを配置し、最初のものにはボタンを押して、もう一方にボタンを押します。そして、2番目のView ControllerのViewDidLoadメソッドで、私は私の質問と[voila](http://i.imgur.com/DlZuAwk.png)に投稿したコードを使用してUISegmentedControlを作成しました!できます!私はAppleがそれがうまくいかないと言った理由を知らない。 :S – Isuru

23

この代わりに

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

変更のみを追加と削除この行--->self.navigationItem.leftBarButtonItem = nil;

をこの

を試してみてください私は、この行を追加していています助けて!

+0

これは実際に助けてくれた、ありがとう...::) – tausun

+9

'setegmentedControlStyle'はiOS7として廃止されました...あなたの答えを更新できますか? –

+0

これは、IBOutlet経由のセグメントコントロール追加では機能しないようです。プログラムで追加されたセグメント制御作業は完全に機能します。 – Cymric

関連する問題