我是我的班级我添加了一个视图控制器的实例,创建了一个属性,然后在我的实现文件中合成它。我试图像这样更新视图控制器中的UIlabel,
NSString *currentChar = [[NSString alloc] initWithFormat:@"%c", ch];
viewController.outputLabel.text = currentChar;
[currentChar release];
我的问题是所有内容都是在没有任何错误或警告的情况下构建的,但标签只是没有更新,我做错了什么。我真的很感激这方面的一些帮助。
答案 0 :(得分:2)
您确定要引用现有的viewController并且没有实例化新的viewController吗?您的财产未被声明为副本,对吗?
textProcessor.h / .m
@interface textProcessor : NSObject {
MainViewController *mainView;
}
@property (retain) MainViewController *mainView;
@end
@implementation textProcessor;
@synthesize mainView;
MainViewController.h / .m
@interface MainViewController : UIViewController {
UILabel *myLabel;
}
@property (retain) UILabel myLabel;
@end
@implementation MainViewController
@synthesize myLabel;
初始化textProcessor类时,设置“mainView”的值,如
-(void)viewDidLoad {
[super viewDidLoad];
textProcessor *proc = [[textProcessor alloc] init];
proc.mainView = self;
//note that you are not doing this:
//MainViewController *mainView = [[MainViewController alloc] init];
//proc.mainView = mainView;
//that was creating a new instance variable instead of using self, the existing one
[textProcessor release];
}
答案 1 :(得分:0)
您是否在IB中创建了自己的品牌?如果您使用IB,则必须为UILabel创建一个IBOutlet。然后,您可以在IB中的UILabel与您班级中的IBOutlet建立连接。
答案 2 :(得分:0)
您是否尝试在视图上调用setNeedsDisplay
方法?您也可以尝试使用setText
方法,而不是直接指定属性。