【问题标题】:How do you define a global IBOutlet variable in iOS5?你如何在 iOS5 中定义一个全局 IBOutlet 变量?
【发布时间】:2012-08-08 19:09:56
【问题描述】:

我需要一个全局 IBOutlet 变量的原因是,我不想在切换回视图后丢失数据。例如,我有一个 IBOutletUIlabel 并设置它的文本。

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

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

【问题讨论】:

    标签: objective-c ios5 global-variables iboutlet


    【解决方案1】:

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

    之前关于这个话题的一些讨论:

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

        猜你喜欢
        • 2011-08-20
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        相关资源
        最近更新 更多