доступ к свойствам формирует экземпляр uiviewcontroler в цели c. - PullRequest
0 голосов
/ 01 ноября 2011

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

у меня есть первый заголовок:

#import <Foundation/Foundation.h>
#import "second.h"

@interface ViewController : UIViewController{
    NSString* theText;
}
@property (nonatomic, assign) IBOutlet UITextField *textField;
@property (nonatomic, retain) NSString *theText;



@end

здесь я .m файл

#import "ViewController.h"

@implementation ViewController
@synthesize theText,textField;

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
    [self setTheText:textField.text];

}

@end

теперь я хотел бы использовать свойство theText в другом файле, чтобы использовать его и изменять.поэтому я подумал, что это будет работать, но это не так:

второй файл .m:

#import "second.h"
#import "ViewController.h"

@implementation second
@synthesize secLabel;

-(void)nameLabel{

    secLabel.text = [ViewController theText];
}

@end

компилятор говорит, что метод селектора не известен.Я много пробовал, но ничего не получалось, кто-нибудь знает, как сделать эту работу?

Tnx

Ответы [ 2 ]

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

http://www.galloway.me.uk/tutorials/singleton-classes/

Это покажет вам, как правильно создать одноэлементный класс.

Возможно, это не самый чистый способ сделать это, но он находится на правильном пути для хранения данных.

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

theText - это свойство уровня экземпляра, но вы пытаетесь получить к нему доступ в классе ViewController. Вместо этого вам нужно получить к нему доступ в некотором экземпляре ViewController. Другими словами, вам нужно:

ViewController *viewController = ... some code to get a ViewController pointer ...
secLabel.text = [viewController theText];

Ваш "второй" контроллер представления каким-то образом должен получить экземпляр ViewController. Как вы на самом деле получите это, зависит от вашего приложения, и я не могу сказать, не зная больше о вашем коде.

...