按下单元格中的按钮时显示新视图

Posted

技术标签:

【中文标题】按下单元格中的按钮时显示新视图【英文标题】:Display a new view when button in cell is pressed 【发布时间】:2011-09-22 18:59:29 【问题描述】:

我在自定义单元格视图中显示了数据。一个单元格包含一个标题和一个按钮。当用户单击按钮时,页面将重定向到新视图。

现在我需要做的是,当用户点击按钮(而不是单元格)时,单元格的标题应该显示在新视图上 将被加载。我应该如何编码?

【问题讨论】:

您是否有理由不只是为此使用对单元格本身的触摸?然后你就可以完全知道它是什么单元格,而无需任何工作(通过 didSelectRowAtIndexPath 的 indexPath 参数:)。 didSelectRowAtIndexPath 中单击单元格时被选中,但我在该单元格中单击button,所以我需要获取单元格的名称。 【参考方案1】:

以下是您应该尝试的一些技巧。

    当您将视图控制器(在按下的那个按钮的IBaction 内)推到下一个视图时,相应地实现下一个视图的标题。

    对按钮使用tags,并在它们与您实现按钮的uiTableViewCell 之间形成逻辑链接。

    cell.textLabel.text 值设置为nextViewController.title

【讨论】:

第二步没看懂,能不能进一步解释一下,或者提供教程/示例代码【参考方案2】:

您必须先将按钮添加到单元格并将按钮设置为表格单元格的附件:

    myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [myButton setFrame:CGRectMake(50, 100, 20, 10)];
    [cell addSubview:myButton];
    cell.accessoryView = myButton;
    [myButton addTarget:self action:@selector (ActionMethod) 
       forControlEvents:UIControlEventTouchUpInside];

现在,您必须在 ActionMethod 中添加将其推送到新视图的逻辑:

    -(void) ActionMethod
   
        myViewController *Obj=[[myViewController alloc]init];
        [self.navigationController pushViewController:Obj animated:NO];
        [Obj release];
   

希望对你有帮助。

【讨论】:

但问题是他还需要知道哪个单元格的按钮被按下了,在你的解决方案中所有按钮都会打开同一个页面。

以上是关于按下单元格中的按钮时显示新视图的主要内容,如果未能解决你的问题,请参考以下文章

IOS/Objective-C:检测自定义表格视图单元格中的按钮按下?

如何使表格视图单元格中的按钮工作[重复]

我显示了单元格,但是当我按下按钮时,我希望图像显示在集合视图单元格中

如何为自定义表格视图单元格中的按钮单击获取不同的视图控制器

swift 3 在tableView 中按下了哪个单元格按钮

按下按钮后如何使图片出现在单元格中