ScrollView中子视图控制器和超级视图控制器之间的通信
Posted
技术标签:
【中文标题】ScrollView中子视图控制器和超级视图控制器之间的通信【英文标题】:Communication between Subview Controller and Superview Controller in a ScrollView 【发布时间】:2013-06-18 21:49:51 【问题描述】:所以,我有一个带有 UIScrollView 的视图。在这个 ScrollView 中,我添加了一个这样的子视图:
ChildViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"1"];
[self.scrollView addSubview:controller.view];
这很好用。在这个子控制器中,我定义了一个带有目标自身的按钮:
[button addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchDown];
如果我点击按钮,程序就会中断。但是如果我将目标设置为 nil,则父控制器被称为第一响应者。
但是,我希望在子控制器中调用该操作。我无法从父视图与子视图通信或从父视图/超级视图调用操作。
我做错了什么?我怎样才能让它工作?
【问题讨论】:
“如果我点击按钮,程序就会中断。”怎么破?编辑您的帖子以包含调试控制台中显示的消息。 您遇到的错误是什么?...您有一个名为 actionButton 的方法吗? 【参考方案1】:没有更多内容,我的第一个猜测是ChildViewController
被释放,这就是为什么你的应用在点击按钮时崩溃。
因此,解决此问题的一种方法可能是保持对您的 ChildViewController
的强烈引用,例如:
@property (strong) ChildViewController *childViewController
那么你会这样做:
self.childViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"1"];
[self.scrollView addSubview:self.childViewController.view];
但更多信息会有所帮助:)
干杯 莫腾
【讨论】:
你是对的,就是这样!现在一切都说得通了,现在在子控制器中调用了该操作。非常感谢你,你让我开心! :) @schumi 很高兴我能帮上忙,下次一定要包含崩溃消息 :)以上是关于ScrollView中子视图控制器和超级视图控制器之间的通信的主要内容,如果未能解决你的问题,请参考以下文章
Autolayout - 使超级视图高度等于子视图高度+常量,其中子视图是 textView