Как я могу обновить UILabel моего контроллера представления через другой класс? - PullRequest
1 голос
/ 01 ноября 2010

Я - мой класс. Я добавил экземпляр моего контроллера представления, создал свойство и затем синтезировал его в моем файле реализации. Я пытаюсь обновить UIlabel в контроллере вида следующим образом:

NSString *currentChar = [[NSString alloc] initWithFormat:@"%c", ch];
viewController.outputLabel.text = currentChar;
[currentChar release];

Моя проблема в том, что все собирается без каких-либо ошибок или предупреждений, но метка просто не обновляется, что я делаю не так. Я очень признателен за помощь в этом.

Ответы [ 3 ]

2 голосов
/ 01 ноября 2010

Вы уверены, что ссылаетесь на существующий 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];
}
0 голосов
/ 01 ноября 2010

Вы пытались вызвать метод setNeedsDisplay в представлении? Также вы можете попробовать использовать метод setText вместо прямого присвоения свойству.

0 голосов
/ 01 ноября 2010

Вы создали свой лейбл в IB? Если вы используете IB, вы должны создать IBOutlet для вашей UILabel. Затем вы устанавливаете связь между UILabel в IB и вашим IBOutlet в вашем классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...