2013-06-18 64 views
-1

所以,我有一个视图与UIScrollView。对于这个ScrollView,我添加了一个这样的子视图:ScrollView中的子视图控制器和Superview控制器之间的通信

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

这工作正常。在这个子控制器中,我定义了一个带有目标自我的按钮:

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

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

但是,我希望在子控制器中调用该操作。我无法从父级通知子视图,或者从父级/超级视图中调用操作。

我在做什么错?我如何得到这个工作?

+3

“如果我点击按钮,程序就会中断。”它如何中断?编辑您的帖子以包含出现在调试控制台中的消息。 –

+0

你得到的错误是什么?......你有叫做actionButton的方法吧? – Jatin

回答

0

没有更多的继续,我的第一个猜测是ChildViewController被取消分配,这就是为什么当你点击按钮时你的应用程序崩溃。

所以解决这个的办法可以保持强引用您的ChildViewController,如:

@property (strong) ChildViewController *childViewController

,那么你会怎么做:

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

但更多的信息将帮助:)

Cheers Morten

+0

你是对的,就是这样!现在这一切都很有意义,现在在子控制器中调用该动作。非常感谢,你让我的一天! :) – Szumi

+0

@schumi高兴我可以帮忙,下次一定要包括崩溃消息:) – mbogh

相关问题