0

我想从我的 xib 文件中添加UIButton一个。UIView

在我的 xib 中,我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方法中,它可以工作,但如果我将其放入稍后调用的函数中,则按钮永远不会显示。

可能是什么原因 ?

谢谢你的帮助。

4

1 回答 1

1

如果您的 UIViewcontent是顶级项目,即不包含在您的主视图中 - 那么它必须是strong. 只有不是顶级的项目才能使用weak,因为包含视图会保持对它们的强引用。我还假设它content被立即添加到主视图中,它保持了对它的强烈引用(它在 viewDidLoad 发生在 ARC nil'ed out 之前content

如果由于某种原因将属性更改为strong不能解决问题,那么请务必添加一个 NSLog(或断言)以确保它content是非零的。

于 2013-06-25T14:30:35.950 回答