gpt4 book ai didi

objective-c - 通过用户交互使用 nib 加载 UIView

转载 作者:行者123 更新时间:2023-11-29 13:25:14 24 4
gpt4 key购买 nike

关于从 Nib 文件加载 UIViews 有很多问题,所以这不是问题所在。我的 UIView 从 Nib 文件加载得很好,问题是,根据我设置 View 的方式,我要么没有用户交互,要么 IBAction 导致崩溃。

场景 0:

- (id) init {
self = [super init];

if (self) {
[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
[self addSubview:self.view];
}

return self;

结果:这会从 Nib 加载 View ,但 UIButton 不可点击。我还注意到这背后的 View Controller 的主视图仍然是交互式的,即使这个 View 应该阻止它。

场景 1:改变这一行

[self addSubview:self.view]

self = (MyView*)self.view;

导致 View 阻塞其后面的主视图 Controller View ,并且按钮 subview 变为可点击,但是......当我将按钮的选择器连接到 IBAction 时,它会导致崩溃并出现错误:

-[MyView performSelector:withObject:withObject:]: message sent to deallocated instance 0x12f1cff0

为什么我的 View 在这种情况下被释放?在有人问之前,我只是像这样添加 subview :

MyView *myView = [[MyView alloc] init];
[self.view addSubview:myView];

编辑:有趣的是,我还注意到 awakeFromNib 从未被调用(在任何一种情况下)。应该吗?

最佳答案

指定的初始化器是 initWithFrame

除此之外::IBOutlet 如何查看?

关于objective-c - 通过用户交互使用 nib 加载 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13295476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com