2013-02-04 9 views
6

スタティックUITableViewでUISwitchを使用しているときに問題が発生しています。 アプリケーションがロードされるときに特定のUISwitchの最後の状態を復元する必要がありますが、IBOutletの状態を確認するたびにnilになります。変数を手動で割り当てようとしましたが、どちらも助けにはなりませんでした。iOS 6.1では、UISwitch IBOutletは常にゼロです。

SettingsController.h

//IBOutlet connected correctly 
@property (strong, nonatomic) IBOutlet UISwitch *switch_displayDetail; 

SettingsController.m他のどこでも、私は_switch_displayDetailの状態を確認するとき、それがnilである

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    if (!_switch_displayDetail) { 
     NSLog(@"_switch_displayDetail is NIL"); //This is always displayed 
    } 

    //Switch is default to YES, I am trying to set it to NO 
    //This line does nothing... 
    [_switch_displayDetail setOn:[dataManager shouldDisplayDetail] animated:YES]; 
} 

を:ここで

は私がやっているものです。私はすべてのスーパー初期化メソッドを呼び出しています。 iOS 6.1で何か変更されましたか?

[編集]合成された変数を使用しても機能しません。

[編集2] XcodeまたはiPhone Simulatorのバグに問題が見つかりました。私のiPod touchでテストしたところ、最初のアルゴリズムは完全に機能しました。私はこの問題とナッツつもりです

...

+0

SettingsControllerで 'init'だけでなく' initWithNibName'を実行しているかどうか確認してください。 – Sathya

+0

また、nib名のスペルが間違っていないか確認してください。 – Fogmeister

+0

_switch_displayDetailの代わりにself.switch_displayDetailを試してください –

答えて

1

お返事いただきありがとうございますが、あきらめた後、私のiPod touchでアプリケーションをテストしたところ、完全に機能しました。これはiPhone Simulatorのバグのようですが、おそらくXcodeのバグです(ここでは新しいものはありません)。 iPhone Simulatorのメニューですべての設定とデータをリセットした後、iPhone Simulatorもそこで動作しました。

だから、狂って行く前に、あなたのアプリケーションを実際のデバイスでテストしてください

+1

Simulatorの設定とデータをリセットすると、私にとってもそれができました。また、iOS 6.0でもこれを体験しました。 – Frost

1

は、私はそれらのトワイライトゾーン問題がいかにイライラ最初に手を知っています。明らかに診断する情報はあまりにも少ないですが、デバッグにどのようにアプローチするかを分かち合いたいと思っていました。

    が、そこでは、switch_displayDetailためのセッターをオーバーライド viewWillAppearに続いて値だけでなく、 self
  1. を記録し、私は我々は同じの話をしていない気がする

同じことをログ

  • ここにインスタンスがあります。私が正しいとすれば、セッターには値が表示されますが、viewWillAppearは表示されません。私が間違っていると、どちらもゼロになります。その場合は、右のinitメソッドを呼び出していないか、あなたのリンケージがIBで正しくありません。

    ちょうど私の2セントです。

  • +0

    ありがとうございます。私は同じことを考えました。私はこれを試して、結果をここに掲載するつもりです。 –

    -1

    まず:

    @property (strong, nonatomic) IBOutlet UISwitch *switch_displayDetail; // should be a weak property 
    

    そして、あなたはあなたの財産を@synthesizedがありますか?

    +0

    iOS 6.0でプロパティを合成する必要はありません –

    関連する問題