Где разместить декларацию в Цели C - PullRequest
1 голос
/ 01 октября 2010

У меня есть file1.h file1.m file1.xib на xib есть пустой экран с надписью на нем.У меня есть другой файл, который выполняет произвольные вычисления и обновит метку в виде циклов расчета.Где я должен объявить значение UILabel * в file1.h или в файле, который выполняет вычисления?

Спасибо, что объехали.

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Метка должна быть объявлена ​​как IBOutlet, как сказал Джош в вашем .h файле, как указано выше, и да, подключите вашу метку в Interface Builder.

Вы также можете определить свою метку как @property в файле .hСинтезируйте его в файл .m, чтобы вы могли легко получить доступ к «myLabel» с помощью.operator.

Теперь, чтобы обновить свою метку своими расчетами, просто определите функцию updateLabel в файле .h и напишите свой код для реализации обновления в файле реализации, как показано ниже:


@interface File1 {
    IBOutlet UILabel *myLabel;
}

@property (nonatomic, retain) IBOutlet UILabel *myLabel;

- (void)updateLabel:(id)sender;

@end


@implementation File1
@synthesize myLabel;

 - (id)init {
     if ( (self = [super init]) ) {
          // init custom work here
     }
     return self;
 }

 - (void)updateLabel:(id)sender {

 //Here sender can be any button who call this function or send it nil if not

      //update your label here 
      myLabel.text = @"Updated Text";
      ......
 }

@end

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

Метка должна быть объявлена ​​как IBOutlet в вашем файле .h:

@interface File1 {
    IBOutlet UILabel *mylabel;
}

@end

Убедитесь, что вы подключили эту розетку к этикетке в Интерфейсном Разработчике.

...