在另一个VC中的一个类中显示变量

时间:2015-09-12 16:39:31

标签: ios objective-c iboutlet

我尝试在一个设置的类中导入联系人。但是,如果没有,我想在一个完全独立的View Controller中设置一个标签出口,说“找不到”。

基本上,我想在一个班级中向另一个班级发送一条消息,但由于某种原因,我正在画一个空白。

以下不会抛出错误但也没有设置标签,因此无效。

VC.h:

//wired to label in VC in storyboard:

@property (weak, nonatomic) IBOutlet UILabel *noneFound;

@end

request.m

//class that does request

#import "VC.h"

NSString *result = @"none found";
VC* vc;
vc.noneFound.text = result;

必须有一个明显的方法来做到这一点。非常感谢任何建议。

3 个答案:

答案 0 :(得分:0)

在属性中使用强而不是弱

@property (strong, nonatomic) IBOutlet UILabel *noneFound;

答案 1 :(得分:-1)

虽然从VC外部设置视图控制器的标签没有错,但我不建议这样做。 MVC架构管理着这个。

除非是业务逻辑需求,否则不应将UI组件公开给头文件。它就像其他人代表视图控制器做出决定。我建议将IBOutlet放在VC的.m文件中。

现在,要将请求类与VC链接,请使用任何现有的设计模式 - 块,代理,通知,目标操作等。Refer to Apple Documentation

一旦有链接,将值从请求类传递给VC,然后在VC中确保 UI始终在MAIN线程上更新。

希望这有帮助!

答案 2 :(得分:-3)

您始终可以使用NSUserDefaults

保存:

NSString *valueToSave = @"someValue";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"preferenceName"];
[[NSUserDefaults standardUserDefaults] synchronize];

加载:

NSString *savedValue = [[NSUserDefaults standardUserDefaults]
    stringForKey:@"preferenceName"];