从子视图调用父ViewController的方法?

时间:2011-10-30 18:28:15

标签: cocoa-touch uiviewcontroller

我被困在这一个小时..

我有一个实现Method1

的ViewController

在这个ViewController中,我添加了一个子视图:

barView = [[[NSBundle mainBundle] loadNibNamed:@"BarView" owner:self options:nil] objectAtIndex:0];
[barView initWithFrame:CGRectMake(0, 0, 1024, 40)];
[self.view addSubview:barView];

这样,在BarView.m中,我有一个按钮,当点击它时,将在父ViewController中调用Method1

- (IBAction)buttonPressedMethod1 {
    [(id)self.superview Method1];        // This line is definitely wrong.
}

我知道我错过了什么。 任何人都可以帮忙解释一下吗?

感谢。

1 个答案:

答案 0 :(得分:0)

好吧,您的第一个代码段错误,因为您正在通过从笔尖加载已经初始化的对象发送initWithFrame。当然,笔尖中的视图已经有了正确的框架,所以这条线是不必要的?

至于实际问题,你是在viewcontroller的视图而不是viewcontroller本身上调用方法。您应该将视图中的按钮连接到视图控制器中的操作(因为您正在使用所有者自己加载笔尖,您可以在IB中执行此操作)。