子视图中的UIButton在Parent中调用了方法

时间:2016-11-21 05:20:05

标签: ios uiview uibutton subview

我正在使用通用链接。 所以,当环球链接点击时,应用程序是打开的,从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才会调用。

为什么会这样? 以及如何改变它? 谢谢!

1 个答案:

答案 0 :(得分:1)

当您在Window上添加ViewController作为子视图时,您不是将View Controller设置为rootView控制器,也不是要推送到视图控制器(详细地说,您只是在窗口中添加视图控制器的视图) ),您的视图控制器不在内存中,因此您在视图控制器中创建的每个操作都不起作用,我们有一个基于堆栈的方法(即视图控制器堆栈)并且您的viewController不在堆栈或内存中,因此如果您创建appdelegate的按钮动作有效。