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

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

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

【问题讨论】:

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

标签: ios swift uitableview uibutton


【解决方案1】:

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

1) 使用委托,检查this

2) 使用通知,检查this

【讨论】:

    【解决方案2】:
    1. 将单元格中的按钮绑定为@IBOutlet
    2. 当单元格选择委托方法tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。在这里您可以通过[tableView cellForRowAtIndexPath:indexPath] 获取您的手机
    3. 更改按钮的标题[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 中跟踪按下了哪个按钮,以便您可以在表格视图控制器中选择单元格时更改其标题。

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

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

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

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

      http://www.filedropper.com/twobuttonnavc

      【讨论】:

      • 如果我只使用一个 ViewController,我可以做到这一点,但在我的情况下,我使用 UITableView 类,因此我无法将根视图控制器中的两个按钮的 IBAction 添加到 TableView 类,希望你能理解我
      猜你喜欢
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      相关资源
      最近更新 更多