0

我正在开发目标 C 中的一个项目,我必须从 uiviews 修改视图控制器中的一些变量。

所以我尝试过这样的事情:

视图控制器.h:

@property (nonatomic) bool Contact;

UIViews 之一:

ViewController * View;
View.Contact = YES;

我还尝试在 ViewController 中创建这样的 setter 方法:

-(void) SetterContact:(bool)boolean;

所以要像这样从 UIView 进行修改:

[View SetterContact:YES];

但它看起来很有效。我读过我必须初始化包含变量的对象,但是在内存管理中,从已经处于活动状态的对象进行一些初始化并不是很好吗?因此,如果 View 已经初始化,我不会从另一个 UIView 调用 init 方法吗?

谢谢你的帮助 !

4

3 回答 3

2

如果您希望 bool 变量可以从其他 viewController 访问。那么只需将其写为:-

@property BOOL Contact;

并创建一个 ViewController 对象,其中您已将联系人变量声明为 BOOL 并使用如下方式访问此变量:-

OtherViewController *otherViewController=[[OtherViewController alloc] init];
otherViewController.Contact=YES;

由于它是一个实例变量,因此必须使用类对象访问它。

于 2013-06-10T04:10:58.613 回答
0

@property (nonatomic, assign, getter = isContact) BOOL contact;在您的 .h 文件中使用。

于 2013-06-10T03:38:35.470 回答
0
  1. 尊重命名约定
    @property (nonatomic,retain) UIViewController *myController;

不要忘记合成
@synthesize myController = _myController;

  1. 如果您想实现自己的设置器,请执行以下操作:尊重命名约定
    -(void)setMyController:(UIViewController*)controller;

  2. 或者如果由于任何奇怪的原因你不能尊重命名约定,你可以将属性指向你想要的方法
    @property (nonatomic,retain,setter=myBizarreSetterMethod:) UIViewController *myController;

这也可以帮助您解决stackoverflow中的问题

于 2013-06-09T22:48:01.727 回答