[英]Load UIView with nib with user interaction
关于从Nib文件加载UIView的问题很多,所以这不是问题。 我可以从Nib文件加载UIView很好,麻烦在于,取决于我如何设置视图,我是否没有用户交互,或者IBActions导致崩溃。
场景0:
- (id) init {
self = [super init];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
[self addSubview:self.view];
}
return self;
}
结果:这将从Nib中加载视图,但UIButton不可轻敲。 我还注意到,即使该视图被阻止,该视图后面的视图控制器的主视图仍是交互式的。
方案1:更改此行
[self addSubview:self.view]
至
self = (MyView*)self.view;
使视图阻塞其后的主视图控制器视图,并且按钮子视图变为可轻敲,但是...当我将按钮的选择器连接到IBAction时,导致崩溃并出现错误:
-[MyView performSelector:withObject:withObject:]: message sent to deallocated instance 0x12f1cff0
为什么在这种情况下我的视图会被释放? 在有人问之前,我就像这样添加子视图:
MyView *myView = [[MyView alloc] init];
[self.view addSubview:myView];
编辑:有趣的是,我还注意到awakeFromNib从未被调用(在任何一种情况下)。 应该是吗
指定的初始化程序是initWithFrame
除此之外:: IBOutlet如何显示?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.