繁体   English   中英

通过用户交互用笔尖加载UIView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM