我正在使用通用链接。 因此,当单击通用链接时,应用程序已打开,并且我正在从 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/