2012-02-29 4 views
0

私はUISegmentControllerでインデックスを選択できません。私は手動でシミュレータを介して触れることができ、私はコードを介してselectedSegmentIndexを設定することができますが、私はそれがシミュレータでコードを介して設定したインデックスを表示することができません。私が見たいのは、私が設定したインデックスは、ユーザーが物理的にアイテムを実際にクリックすることなく、ユーザーに選択されていることを示しているということです。私のUISegmentControllerでsegmentIndexをコードで選択しようとしています

if([mealPlanTable isHidden]){ 
    segCont.selectedSegmentIndex = 0; 
    NSLog(@"%d", [segCont selectedSegmentIndex]); 
    [self mainControl:segCont]; 
} 

これはインデックスを設定し、選択したインデックスに基づいてアクションを実行するmainControllerを呼び出します。これは動作します。私が設定した値を使用することはできますが、セグメントが選択されていることを視覚的に見ることはできません。シミュレータでは青が青です。

答えて

2

セグメント化されたコントロールはどのようにビューに追加されますか?インターフェースビルダーを経由している場合は、IBOutletとしてリンクし、そのプロパティ、つまりself.segmentedControlをアクセス用に使用するようにしてください。直接追加した場合は、適切なインスタンス変数を使用していることを確認してください。また、ビューの読み込み中に適切な場所から呼び出していることを確認してください。

+0

私はUISegmentControlを作成します* segCont – Rob

+0

申し訳ありません。 .hでそれを作成し、IBOutletを作成します。私はsegCont.selectedSegmentIndex経由で呼び出しています – Rob

+0

コンセントを接続している場合はaccessor - self.segCont.selectedSegmentIndex = 0 – shawnwall

2

どこから呼びますか? initであれば、viewDidLoadまたはviewWillAppearメソッドに配置してみてください。

+0

別のアクションを実行する別の関数で呼び出していますが、自分のビューが変更されています。私は検索バーを起動し、それが発生すると、segmentedControlとは異なるビューの1つに結果を表示したい。これで、selectedIndexを手動で変更しようとしています。そのため、UISegmentedControllerが変更されたときにInterfaceにアタッチしたIBActionを呼び出してビューを更新できます。 – Rob

+0

ショーンウォールが示唆したように、それは悪いIBのリンクのように聞こえる。 viewDidLoadの後に終了した場合。上記のNSLogは何を示していますか? – TigerCoding

+0

これは、私が設定したselectedSegmentIndexを表示します。これは実際に設定したい正しいインデックスです。上記のように0に設定すると、0が表示されますが、視覚的には更新されません。 – Rob

関連する問題