0

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

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

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

4

2 回答 2

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];

于 2012-06-04T06:15:54.217 回答
0

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

于 2012-06-04T06:18:23.550 回答