ScrollView中子视图控制器和Superview控制器之间的通信

时间:2013-06-18 21:49:52

标签: ios objective-c cocoa-touch uiscrollview

所以,我有一个带有UIScrollView的视图。对于这个ScrollView,我添加了一个像这样的子视图:

ChildViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"1"];
    [self.scrollView addSubview:controller.view];

这很好用。在这个子控制器中,我定义了一个带有目标self的按钮:

[button addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchDown];

如果单击按钮,程序会中断。但是如果我将目标设置为nil,则将父控制器称为第一响应者。

但是,我希望在子控制器中调用该操作。我无法从Parent传达给子视图或从Parent / Superview调用一个动作。

我做错了什么?我如何让它工作?

1 个答案:

答案 0 :(得分:0)

如果没有更多内容,我的第一个猜测就是ChildViewController被取消分配,这就是您点按按钮时应用崩溃的原因。

所以解决这个问题的方法可能就是保持对ChildViewController的强烈引用,如:

@property (strong) ChildViewController *childViewController

然后你会这样做:

self.childViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"1"];
[self.scrollView addSubview:self.childViewController.view];

但更多信息会有所帮助:)

干杯 的Morten