IOS将UI按钮传递给方法作为参考

时间:2014-09-18 19:56:06

标签: ios objective-c

在view.h中我宣布

@property (retain, strong) UIButton *btn;

在view.m中,我首先得到:

@synthesize btn;

然后在实现中我调用另一个类中的方法:

[self.view addSubview:[otherclass getTestBtn:btn]];

在此行之后,在我的view.m中,我尝试按下按钮记录文本:

NSLog(@"btn.titleLabel.text =  %@", btn.titleLabel.text);

不幸的是日志说:

btn.titleLabel.text = (null)

在另一个class.m中,我用这种方式实现了这个方法:

btn              = [[UIButton alloc] initWithFrame:CGRectMake(70, 340, 100, 25)];
[btn setTitle:@"HELLO" forState:UIControlStateNormal];
return btn;

在模拟器中,我看到按钮显示文字" Hello"。但是从view.m看,按钮中的文字似乎无法访问。为什么? 我担心从view.m传递到其他class.m的按钮不会被引用传递。因此,view.m中的按钮不受其他类中的方法的影响。这是什么原因?如果是:如何传递按钮作为参考?我试过&字符。但编辑显示错误。

1 个答案:

答案 0 :(得分:0)

如果您想从其他课程返回按钮,则需要将其分配给您的属性 -

self.btn = [otherClass getTestBtn];
[self.view addSubView:self.btn];

另外,您应该{@ 1}}而不是strong,因为@dimimpou说过,除非您想使用特定的支持变量名称,否则不再需要retain