Доступ к переменной-члену UIView из другого UIView - PullRequest
0 голосов
/ 28 марта 2009

У меня есть три разных взгляда на iphone. Я успешно переключаюсь между различными представлениями, но я хочу получить доступ к переменной 1-го представления в методе ViewDidLoad второго представления, но не могу получить его, поэтому, пожалуйста, помогите мне в этом.

Ответы [ 3 ]

1 голос
/ 28 марта 2009

Наличие двух подклассов UIView, объявленных так:

@interface ViewOne : UIView {
    NSString *someVar;
}

@property (nonatomic, copy) NSString *someVar;

@end

@interface ViewTwo : UIView {
    NSString *referenceToSomeVar;
}

@property (nonatomic, retain) NSString *referenceToSomeVar;

@end

Вы можете сделать следующую ссылку на переменную someVar из первого представления

ViewOne *view1 = [[ViewOne alloc] init];
view1.someVar = @"This is the original variable";

ViewOne *view2 = [[ViewOne alloc] init];
view2.referenceToSomeVar = view1.someVar;
1 голос
/ 28 марта 2009

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

Позвольте мне указать, что лучше использовать шаблон ViewController для управления данными и поведением, перетекающими из одного представления в другое.

0 голосов
/ 07 февраля 2012

Я хочу добавить что-то в код, размещенный выше. Представьте, что вы хотите использовать переменную из ViewOne и назначить ее второй переменной в ViewTwo.

@interface ViewOne : UIView {
BOO someVar;
}

@property (readwrite) someVar;

@end

@interface ViewTwo : UIView {
BOO referenceToSomeVar;
}

@property (readwrite) BOO referenceToSomeVar;

@end

Таким образом, вы должны положить в ViewOne .m

 ViewOne *view1 = [[ViewOne alloc] init];
 view1.someVar = TRUE;

Во втором представлении .m

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