私は動的にセグメントを削除して追加する必要があるsegmentedControlを持っています。このコードは最初のセグメントを削除しますが、次に選択する正しいセグメントを設定しません。奇妙なことは、すべての数字が正しいことを印刷するときです。画面上の強調表示されたセグメンテーションであり、常に-1で表示されます。uisegmented control手動で選択したインデックスを設定しない
if ([outControl numberOfSegments]==4) {
int previous = [outControl selectedSegmentIndex];
if (previous>0) {
previous--;
}
[outControl removeSegmentAtIndex:0 animated:YES];
NSLog(@"setting to %d with %d segments", previous ,[outControl numberOfSegments]);
[outControl setSelectedSegmentIndex:previous];
}
ここでは、3つのセグメントで1に設定されます。このログセグメントでは、コントロール内で実際に0が選択されており、コントロールが選択されていると判断してセグメント1を押すことはできません。 セグメント0を選択して表示していても、セグメント0を押すことができます。
私の問題を明確にしようとするスクリーングラブです。
image セル内のテキストは、実際にはログで確認できるようにセル1が選択されているので正しいです。しかし、強調表示されたセルは0です!それは私を夢中にさせる。削除するときにのみセグメントを追加するときはすべて問題なく動作します。
誰でもどこが間違っているのか分かりますか?
感謝
ジュール
私は私が新しい選択したセグメントを設定しない場合でも、私は同じ結果が間違ったセグメントが選択されている。すなわち得ることに気づいた.....?これは誰にも役立つ場合は、cellForRowAtIndexPathですべてコード化されていますか?
ありがとうございます私はこれを使用します。それ以外の方法でセグメントを挿入すると奇妙です。 – Jules
実際にこれを試しましたが、先ほど説明したのと同じ結果が得られました。残念ながら、それは仕事をしなかった。 – Jules
何かが続いています。私はテストプロジェクトであなたのコードを実行し、あなたが記述したように動作しませんでした。それを追加すると固定されます。 – danh