在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中的按钮不受其他类中的方法的影响。这是什么原因?如果是:如何传递按钮作为参考?我试过&字符。但编辑显示错误。
答案 0 :(得分:0)
如果您想从其他课程返回按钮,则需要将其分配给您的属性 -
self.btn = [otherClass getTestBtn];
[self.view addSubView:self.btn];
另外,您应该{@ 1}}而不是strong
,因为@dimimpou说过,除非您想使用特定的支持变量名称,否则不再需要retain
。