我有一个带有ContainerView的UIViewController(root),它以编程方式加载一个nib:
UIView *containerView = [[[NSBundle mainBundle] loadNibNamed:@"KeyboardView"
owner:self options:nil] objectAtIndex:0];
[self.view addSubview:containerView];
我有一个类文件(.h和.m)挂钩到这个.xib文件(UIView)。
我的.xib文件(UIView)有一个按钮和一个动作。
当调用并执行此操作时,我删除了我的.xib文件。
我的ViewController.m(root)如何处理removeFromParent my nib文件的确切时间?
我尝试使用Protocol&代表但失败了。
我试着在prepareForSegue方法上设置delegate = self但是没有成功。
我的问题是:
我的UIViewController(root)以编程方式调用我的键盘(.xib)
键盘中的所有操作都由连接到.xib的类处理
完成操作后,我删除了.nib文件(我模拟了一个解雇)。
ViewController.m(root)中的方法如何知道我解除了我的.xib文件?
答案 0 :(得分:0)
我不确定你在这做什么,但我想我理解你的问题。
在界面中,为键盘视图声明一个弱属性。
@property (weak, nonatomic) UIView *keyboardView;
然后当你加载键盘
UIView *containerView = [[[NSBundle mainBundle] loadNibNamed:@"KeyboardView"
owner:self options:nil] objectAtIndex:0];
[self.view addSubview:containerView];
self.keyboardView = containerView;
现在您可以测试self.keyboardView != nil
以了解键盘是否已加载。
这是有效的,因为keyboardView
很弱,所以当它从父视图中移除时,该属性将设置为nil
。
注意:不需要任何协议或代表。