2009-10-02 2 views
7

私はiPhoneプログラミングに新しいので、あなたが私を助けることができたら、私はそれを感謝するだろう - 私はWeb上でされており、これに対する答えを見つけることができません。iPhone:ナビゲーションコントローラ内のボタンではなく、ツールバーにセグメント化されたコントロールを追加しますか?

私の現在の設定は以下のようであるMainWindow.xibのナビゲーションコントローラでMainWindow.xib>ビューのこの

ナビゲーションコントローラはRootViewController.xib> RootViewController.xibは、単一のテーブルビューが含まれて呼び出します。

私は、このコードは、ボタンのために働くRootViewController.m

​​

に次のコードを使用して、ツールバーにロードすることができます。しかし私は私の人生のために、ボタンの代わりに分割されたコントロールを追加する方法を見つけることができません。私は2つのセグメント化されたコントロールを持つ配列を試したが、その後、ツールバーに配列を追加することはできません。

誰かが、私が大いに感謝するボタンを追加するのに使ったのと同じ方法でセグメント化されたコントロールを追加するいくつかのコードを教えてもらえればいいですか?

ありがとう、dave。

答えて

20

解決策は、すべてのボタンなどでUISegmentedControlを作成し、次に(2)initWithCustomView:(UIView *)viewイニシャライザを使用してUIBarButtonItemを作成し、これに変数としてセグメント化されたコントロールを提供することです。次に、サンプルコードで行ったように、配列を使用してツールバーにBar Button Itemを追加します。

セグメント化されたコントローラのターゲットとアクションを設定していることを確認してください。スタイルをUISegmentedControlStyleBarに設定することをおすすめします。地図アプリの一番下にあるように見えます。これがあなたが探しているものだったらいいなと思っています。

+0

どのようにしてsegmentedControllerセレクタでどのセグメントが選択されるのですか? – Neelesh

+0

そのselectedSegmentIndexプロパティを確認してください –

11

ここでは、ナビゲーションコントローラのツールバーにセグメント化されたコントロールを追加するコードを示します。 :

NSArray *segItemsArray = [NSArray arrayWithObjects: @"Settings", @"Templates", @"Notes", nil]; 
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segItemsArray]; 
segmentedControl.frame = CGRectMake(0, 0, 200, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.selectedSegmentIndex = 2; 
UIBarButtonItem *segmentedControlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:(UIView *)segmentedControl]; 
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
NSArray *barArray = [NSArray arrayWithObjects: flexibleSpace, segmentedControlButtonItem, flexibleSpace, nil]; 

[self setToolbarItems:barArray]; 
+0

その卿のおかげで魅力的に働いてくれてありがとう –

関連する問題