【问题标题】:I have used TableViewCell in Different TableView. So how do I fetch TableViewCell's selected button's value to TableView我在不同的 TableView 中使用了 TableView Cell。那么如何将 UITableViewCell 选定按钮的值获取到 TableView
【发布时间】:2011-12-10 07:24:12
【问题描述】:

我已经分别创建了名为 SweepStakeTableViewCell 的 .h、.m 和 .xib 文件,并且在我的 xib 文件中,我将 View 替换为如下所示的单元格。

现在,我已经编写了所有选择按钮的代码。我已成功将此单元格集成到具有不同 .h、.m 和 .Xib 文件的表中,名为 SweepViewController。该XIB的输出将显示像这样的参与者和选项按钮。

现在说到重点,我想将选定按钮的值传递给 SweepViewController,并且选择按钮的逻辑位于 SweepStakeTableViewCell 中。

请帮帮我。如果你不能清楚地得到我的问题,请问我问我。

【问题讨论】:

    标签: iphone objective-c ios xcode ios4


    【解决方案1】:

    如果我理解这个问题,有两种方法:

    1) 在 SweepStakeTableViewCells 中存储对 SweepViewController 的引用。通过向子类添加属性(即实例变量和公共设置器)并在 tableView:cellForRowAtIndexPath: 方法中创建单元格时设置它来做到这一点。

    2) 使用 Apple 提供的通知系统。你的 viewController 需要注册一个观察者。然后您的单元格可以发布通知,并且它们将被 viewController 拾取。查看 NSNotificationCenter 的文档。

    【讨论】:

      【解决方案2】:

      您可以为 SweepStakeTableViewCell 创建一个委托并将 SweepViewController 分配给它。

      @protocol SweepStakeTableViewCellDelegate <NSObject>
      - (void)sweepTableViewCell:(SweepStakeTableViewCell *)cell buttonSelected:(UIButton *)button;
      @end
      

      在表格视图委托方法中创建单元格时,将视图控制器(在本例中为自身)分配给 SweepStakeTableViewCell 委托方法。

      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
      {
          static NSString *CellIdentifier = @"Cell";
      
          UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
          if (cell == nil) {
              cell = [[[SweepStakeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
          }
      
          // Configure the cell...
          .
          .
          .
          cell.delegate = self;
          return cell;
      }
      

      对于 SweepStakeTableViewCell

      @interface SweepStakeTableViewCell : UITableViewCell
      .
      .
      @property (nonatomic, assign) id<SweepStakeTableViewCellDelegate> delegate;
      .
      @end
      
      @implementation SweepStakeTableViewCell
      .
      - (void)buttonTapped:(id)sender
      {
          if ([delegate respondsToSelector:@selector(sweepTableViewCell:buttonSelected:)])
          {
              [delegate sweepTableViewCell:self buttonSelected:sender];
          }
      }
      .
      @end
      

      当在表格视图单元格中选择按钮时,它将调用委托方法,在这种情况下,视图控制器带有单元格和选定的按钮,您可以检索值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-16
        • 2012-03-07
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多