我正在使用通用链接。 所以,当环球链接点击时,应用程序是打开的,从AppDelegate我正在加载ViewController:
ConViewController *con = [[UIStoryboard storyboardWithName:@"Main"
bundle:nil] instantiateViewControllerWithIdentifier:@"ControllerName"];
[[[UIApplication sharedApplication] keyWindow] addSubview:con.view];
在这个(“con”)视图控制器中,我有一个带有NIB的UIView:
UIView *NibView = [[[NSBundle mainBundle] loadNibNamed:@"NibName"
owner:self options:nil] lastObject];
[_PageView addSubview:SingleView];
-------
| con |
| |
|-----|
||Nib||
|| ||
|-----|
-------
问题: 在NibView中我有UIButton。 Button Action的实现位于“ConViewController”中。 但只有当我将实现放在AppDelegate(Parent)中时,Action才会调用。
为什么会这样? 以及如何改变它? 谢谢!
答案 0 :(得分:1)
当您在Window上添加ViewController作为子视图时,您不是将View Controller设置为rootView控制器,也不是要推送到视图控制器(详细地说,您只是在窗口中添加视图控制器的视图) ),您的视图控制器不在内存中,因此您在视图控制器中创建的每个操作都不起作用,我们有一个基于堆栈的方法(即视图控制器堆栈)并且您的viewController不在堆栈或内存中,因此如果您创建appdelegate的按钮动作有效。