0

我创建了一个弹出窗口,其中有一个内容列表显示在表格视图中。现在,当我单击 tableview 的任何行时,它应该调用一个方法,该方法在父视图中可用,而不是在弹出视图中。如果我在该弹出窗口中使用任何按钮,那么在选择一行后,如果我单击该按钮,则它可以工作。以这种方式在父视图中提及按钮操作。

[controller.gotoButton addTarget:self action:@selector(clickMe:) forControlEvents:UIControlEventTouchUpInside];

那么点击表格行时如何调用方法呢?

4

2 回答 2

1

在这里你可以找到对代表的很好的描述。

您想做的事情可以通过协议/委托来解决。您应该在 Popup 视图的头文件中创建协议,并在 *.m 类中创建实现。你的父视图应该实现协议,不要忘记连接线,myPopupObject.delegate = self;+协议方法的实现。

我建议使用

if ([delegate respondsToSelector:@selector(myMethod:)]) {
  //call the selector
}

在 Popup 视图类中验证,因为如果协议的方法是可选的,并且您没有在父类中实现它,您的应用程序将崩溃(您不会从编译器收到任何错误/警告消息,因为它是可选方法)。

于 2012-09-04T10:33:32.923 回答
0

在 rowDidSelect 中,

为父视图创建一个对象,例如:

   parentClass *pc=[parentClass alloc]init];
  [pc method:];
于 2012-09-04T10:33:07.400 回答