1

グローバルIBOutlet変数が必要な理由は、ビューを元に戻した後にデータを失いたくないからです。たとえば、IBOutletandUIlabelとそのテキストを設定します。

@property (retain, nonatomic) IBOutlet UIImageView *imageView; 
@property (retain, nonatomic) IBOutlet UITextField *inputText; 
@property (retain, nonatomic) IBOutlet UILabel *warnningLabel;

他のビューから切り替えた後、UILabelはnilに設定されますが、これは発生させたくありません。何か案は?

4

2 に答える 2

3

あなたの質問は、ビュー内にデータを保存していることを示唆しています。これは、問題の原因であるMVC(Model-View-Controller)に違反していることを意味します。正しい解決策は、データをViewおよびView Controllerから移動し、別々のモデルオブジェクトに配置することです。そうすれば、画面上にいるときも画面を離れているときも気になりません。Andrei Gが指摘しているように、のモデルからデータを再読み込みしますviewWillAppear:

このトピックに関する以前の議論:

于 2012-08-12T03:03:16.743 に答える
2

これを試して:

ビューDidDisappearでNSUserDefaultsを使用して値を保存(またはグローバルNSString変数を宣言)し、viewDidAppearでUILabel.textを設定します

于 2012-08-12T02:52:21.887 に答える