我想在我的xib文件的UIButton
中添加UIView
。
在我的xib中,我使用界面构建器声明一个名为“content”的UIView
出口:这是生成的代码:
@property (weak, nonatomic) IBOutlet UIView *content;
我想添加一个按钮,这是代码:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(0, 8, 141.0, 56.0);
[button setBackgroundImage:[UIImage imageNamed:@"TAB_NORMAL"]
forState:UIControlStateNormal];
button.frame = CGRectMake(0, 8, 56.0, 141.0);
[self.content addSubview:button];
如果我将此代码放在-viewDidLoad
方法中,它可以正常工作,但是如果我将它放在稍后调用的函数中,则永远不会显示该按钮。
可能是什么原因?
感谢您的帮助。
答案 0 :(得分:1)
如果您的UIView content
是顶级项目,即未包含在主视图中,则必须为strong
。只有非顶级的商品才能使用weak
,因为包含的视图会对其进行强有力的引用。我还假设content
被立即添加到主视图中,该视图保留了对它的强引用(它在viewDidLoad发生之前发生在ARC nil'ed content
之前。
如果由于某种原因将属性更改为strong
无法解决问题,那么请确保添加NSLog(或断言)以确保content
为非零。