ios - subview 中的 UIButton 调用父 View 中的方法

标签 ios uiview uibutton subview

我正在使用通用链接。 因此,当单击通用链接时,应用程序已打开,并且我正在从 AppDelegate 加载 ViewController:

ConViewController *con = [[UIStoryboard storyboardWithName:@"Main"
 bundle:nil] instantiateViewControllerWithIdentifier:@"ControllerName"];

[[[UIApplication sharedApplication] keyWindow] addSubview:con.view];

在这个(“con”) View Controller 中,我有带有 NIB 的 UIView:

UIView *NibView = [[[NSBundle mainBundle] loadNibNamed:@"NibName"
 owner:self options:nil] lastObject];

[_PageView addSubview:SingleView];



-------
| con |
|     |
|-----|
||Nib||
||   ||
|-----|
-------

问题: 在 NibView 中我有 UIButton。 按钮 Action 的实现位于“ConViewController”中。 但是只有当我将实现放在 AppDelegate(父级)中时才会调用 Action。

为什么会这样? 我该如何改变它? 谢谢你!

最佳答案

当您在 Window 上添加 ViewController 作为 subview 时,您没有将 View Controller 设置为 rootView Controller 或者您没有推送到您的 View Controller (详细地说,您只是在 window 上添加 View Controller 的 View ),你的 View Controller 不在内存中,所以你在 View Controller 中创建的每个 Action 都不起作用,我们有一个基于堆栈的方法(即 View Controller 堆栈)并且你的 viewController 不在堆栈或内存中,所以如果你创建appdelegate 的按钮操作有效。

关于ios - subview 中的 UIButton 调用父 View 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40713250/

相关文章:

ios - Xcode不验证构建

uiview - UIView 的基于 block 的动画方法的内部实现

swift - UIButton 标题未显示在 UIStackView 内

iOS - 如何翻转 UIButton 的标题?

ios - 每次在按钮中完成点击时执行一个方法

ios - 如何从NSString中删除08十六进制字符

ios - 在 ReactiveCocoa 中处理下一步、完成和错误

ios - 调用 updateChangeCount 时 UIDocument 自动保存不起作用

ios - 将阴影应用于从 nib 加载的 subview

ios - 如何使用 UIView 创建自定义翻转动画