如何在iOS5中定义全局IBOutlet变量?

时间:2012-08-12 02:48:10

标签: objective-c ios5 global-variables iboutlet

我需要全局IBOutlet变量的原因是,我不希望在切换回视图后丢失数据。例如,我有IBOutletUIlabel并设置了其文字。

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

从其他视图切换回来后,UILabel将设置为nil,我不希望它发生。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您的问题表明您将数据存储在视图中。这意味着您违反了MVC(模型 - 视图 - 控制器),这是您的问题的根源。正确的解决方案是将数据移出视图并查看控制器,并将其放入单独的模型对象中。然后,当你在屏幕上或关闭时,你不在乎。正如Andrei G所说,您将在viewWillAppear:

中重新加载模型中的数据

之前关于此主题的一些讨论:

答案 1 :(得分:2)

试试这个:

使用NSDserDefaults保存值(或在viewDidDisappear上声明一个全局NSString变量)并在viewDidAppear上设置UILabel.text