我正在研究目标C中的一个项目,我必须修改一些来自uiviews的视图控制器中的变量。
所以我尝试过这样的事情:
ViewController.h:
@property (nonatomic) bool Contact;
其中一个UIViews:
ViewController * View;
View.Contact = YES;
我也尝试在ViewController中创建一个这样的setter方法:
-(void) SetterContact:(bool)boolean;
所以从这样的UIView修改:
[View SetterContact:YES];
但它看起来很有效。 我已经读过,我必须初始化包含变量的对象,但是在内存管理中,从已经激活的对象进行一些初始化并不是很好吗? 所以如果View已经是init,我不打算从另一个UIView no调用init方法吗?
感谢您的帮助!
答案 0 :(得分:2)
如果你想从其他viewController访问bool变量,那就简单地说: -
@property BOOL Contact;
并创建一个ViewController对象,在其中声明了联系人变量BOOL并使用如下方式访问此变量: -
OtherViewController *otherViewController=[[OtherViewController alloc] init];
otherViewController.Contact=YES;
由于它是一个实例变量,因此必须使用类对象进行访问。
答案 1 :(得分:0)
@property (nonatomic,retain) UIViewController *myController;
不要忘记合成
@synthesize myController = _myController;
如果你想实现自己的setter,请执行以下操作:尊重命名惯例
-(void)setMyController:(UIViewController*)controller;
或者如果出于任何奇怪的原因你不能尊重命名惯例,你可以将属性指向你想要的方法
@property (nonatomic,retain,setter=myBizarreSetterMethod:) UIViewController *myController;
这也可以帮助你question in stackoverflow
答案 2 :(得分:0)
在.h文件中使用@property (nonatomic, assign, getter = isContact) BOOL contact;
。