iphone传递导航控制器作为参数

时间:2012-06-04 05:58:19

标签: iphone uinavigationcontroller uibutton parameter-passing custom-cell

我的应用程序具有如下结构:

一个带有5个按钮的UIView(这是一个导航控制器)。按下每个按钮后,我在导航控制器中按下UItableView。我现在的问题是,我创建了几个自定义单元格,它们都有自己的类。那些单元格中有几个按钮。当按下每个按钮时,我想在导航控制器中“推”另一个视图。问题是,当我在单元格的类中为按钮创建选择器时,它无法识别“self.navigationcontroller”来推送新视图。如何将导航控制器作为参数传递给单元格的init方法?

请不要建议我将选择器作为参数传递。我想要一个稍后初始化自定义UIToolBar的类,它几乎放在我的所有视图中,所以我想将导航控制器作为参数传递,这样我就不必在每个视图中再次创建所有方法。

2 个答案:

答案 0 :(得分:1)

你可以做一些事情:

  1. 使用委托协议设计模式。为您的单元格创建委托协议,并将视图控制器指定为这些单元格的委托。然后,按下按钮时,向代表(也称为视图控制器)发送消息。
  2. 使用NSNotifications和NSNotificationCenter
  3. 使用块(虽然这不是一个很好的路径)
  4. 或者您可以将视图控制器添加为单元格中按钮的目标,如下所示:

    // this would be in the cellForRowAtIndexPath method of your UITableViewDataSource (probably your UIViewController)

    [cell.button1 addTarget:self action:@selector(cellButton1Pressed:) forControlEvents:UIControlEventTouchUpInside];

答案 1 :(得分:0)

您可以在ViewController中处理按钮操作,而不是单元格类。