swift - 在UITableView中选择单元格时如何更改按钮名称?

Posted

技术标签:

【中文标题】swift - 在UITableView中选择单元格时如何更改按钮名称?【英文标题】:How to change button name when cell selected in UITableView in swift? 【发布时间】:2016-03-05 10:56:53 【问题描述】:

我有两个UIButton,当你点击每一个时,你会进入表格视图控制器,在那里你可以选择一些东西。

我的问题是如何在选择任何单元格时更改按钮标题。 我想用所选单元格的名称替换按钮标题。

【问题讨论】:

您要将其标题更改为所选单元格名称的按钮在哪里? This 所以您想在单击单元格时返回根视图控制器? 是的,顺便改个按钮名 【参考方案1】:

有两种方法可以将数据传回之前的 viewController。

1) 使用委托,检查this

2) 使用通知,检查this

【讨论】:

【参考方案2】:
    将单元格中的按钮绑定为@IBOutlet 当单元格选择委托方法tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。在这里您可以通过[tableView cellForRowAtIndexPath:indexPath] 获取您的手机 更改按钮的标题[cell.yourButton setTitle...]

【讨论】:

我使用 UITableView 的类,所以我不能添加这个【参考方案3】:

如果您要将导航控制器放入根视图控制器,并将您希望从中访问按钮的视图控制器作为其顶部视图控制器,那么您可以在点击单元格时执行以下操作:

if let topVC = navigationController?.topViewController as? MyButtonViewController 
    topVC.button1Name.setTitle("New Title", forState: .Normal)

然后您可以使用以下命令隐藏顶部视图控制器上的导航栏:

override func viewWillAppear(animated: Bool) 
    navigationController?.setNavigationBarHidden(true, animated: animated)


override func viewWillDisappear(animated: Bool) 
    navigationController?.setNavigationBarHidden(false, animated: animated)

【讨论】:

【参考方案4】:

您可以使用单个 NavC,然后使用两个按钮作为根视图控制器来制作视图控制器,而不是使用两个导航控制器。然后,当按下按钮时,您会加载适当的表格视图控制器。此外,如果您的表视图控制器具有相同的数据源,那么您可以使用单个表视图控制器本身。

然后根据按下的按钮,您按下适当的表格视图控制器,但在prepareForSegue 中跟踪按下了哪个按钮,以便您可以在表格视图控制器中选择单元格时更改其标题。

要从表格视图控制器传递选定的单元格详细信息,您可以使用视图控制器可以实现的委托,表格视图控制器将调用并传递选定的单元格详细信息。

所以简而言之就是这样做。

    将您的 navC 作为初始视图控制器。 使用两个按钮将您的视图控制器作为 navC 的根视图控制器 在两个按钮的 IBAction 中存储按下了哪个按钮,以便您知道必须更改哪些按钮的标题。 加载表视图控制器时,将视图控制器设置为自定义委托。 在语言列表表视图控制器的didSelectRowWithIndexPath 中,使用委托传递选定的单元格信息并弹出视图控制器。 在视图控制器的委托方法中,将您在步骤 3 中存储的按钮标题更改为所选单元格的文本。

我在这里上传了另一个解决方案。除了具有两个按钮的 ViewController 之外,它不包含任何自定义视图控制器。它利用 segues 和 unwind segues。

http://www.filedropper.com/twobuttonnavc

【讨论】:

如果我只使用一个 ViewController,我可以做到这一点,但在我的情况下,我使用 UITableView 类,因此我无法将根视图控制器中的两个按钮的 IBAction 添加到 TableView 类,希望你能理解我

以上是关于swift - 在UITableView中选择单元格时如何更改按钮名称?的主要内容,如果未能解决你的问题,请参考以下文章

swift - 在UITableView中选择单元格时如何更改按钮名称?

在 Swift 3 中基于 UITableView 中的单元格选择删除文件

UITableView 中的单元格在 iOS 中选择之前不会更新(swift)

如何知道是不是选择了 UITableView 的单元格?

Swift:UITableView 单元格受到另一部分中单元格的影响

Swift-app 在 UITableView 中选择行时崩溃