我需要全局IBOutlet变量的原因是,我不希望在切换回视图后丢失数据。例如,我有IBOutlet
和UIlabel
并设置了其文字。
@property (retain, nonatomic) IBOutlet UIImageView *imageView;
@property (retain, nonatomic) IBOutlet UITextField *inputText;
@property (retain, nonatomic) IBOutlet UILabel *warnningLabel;
从其他视图切换回来后,UILabel将设置为nil,我不希望它发生。有什么想法吗?
答案 0 :(得分:3)
您的问题表明您将数据存储在视图中。这意味着您违反了MVC(模型 - 视图 - 控制器),这是您的问题的根源。正确的解决方案是将数据移出视图并查看控制器,并将其放入单独的模型对象中。然后,当你在屏幕上或关闭时,你不在乎。正如Andrei G所说,您将在viewWillAppear:
。
之前关于此主题的一些讨论:
答案 1 :(得分:2)
试试这个:
使用NSDserDefaults保存值(或在viewDidDisappear上声明一个全局NSString变量)并在viewDidAppear上设置UILabel.text