私はセグメント化されたコントロールにユーザー設定を読み込もうとしています。 NSUserDefaultが正しく読み込まれ、設定が正しくインデックスに変換されます。ただし、セグメント化されたコントロールはインデックスの設定に応答しないように見えます。UISegmentedControl:プログラムでインデックスを設定しますか?
コードクリーンは-Wall -Wextra
でコンパイルされ、clang
は問題を報告しません。私はリークとゾンビの両方で走っています - OK。以下のASSERTs
は発砲しません。
UISegmentedControlはInterface Builderを使用して作成されました(ビューに合計4つあります)。私は接続を確認しました。私は-loadPreferences
を-viewDidLoad
、-viewWillAppear
、そして-viewDidAppear
と呼ぶことを試みました。
私は行方不明がありますか? needsUpdate
または他の方法でコントロールを再描画する必要がありますか?ジェフ
-(void)loadPreferences
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
...
int days = [userDefaults integerForKey:kDirtyAfter];
ASSERT(IsValidDirtyDays((DirtyDays)days));
if(!IsValidDirtyDays((DirtyDays)days))
days = (int)DirtyDaysDefault;
int idx;
switch(days)
{
case DirtyDays1: idx = 0; break;
case DirtyDays3: idx = 1; break;
case DirtyDays7: idx = 2; break;
case DirtyDays14: idx = 3; break;
case DirtyDays28: idx = 4; break;
default: idx = 1;
}
// dirtyAfterSegment.selectedSegmentIndex = idx;
[dirtyAfterSegment setSelectedSegmentIndex:idx];
ASSERT(dirtyAfterSegment.selectedSegmentIndex == idx);
}
ありがとうKendall。私はコピー&ペーストを指でつまんで、 ' - valueChanged'に現れました。 – jww