【问题标题】:Selecting a Table View Cell programmatically from another view controller从另一个视图控制器以编程方式选择表视图单元
【发布时间】:2016-01-15 13:05:25
【问题描述】:

我没有对此进行编码,但我想知道它是否可能以及如何完成。假设我在 VC1 上。如果我按下 VC1 上的按钮,我想被带到具有表格视图的 VC2,然后让它自动选择第一个单元格并转到 VC3。任何有这样做经验的人。

【问题讨论】:

  • 你想动画这个完整的行为..?
  • 为什么VC2需要参与进来?

标签: ios swift uiviewcontroller tableview segue


【解决方案1】:

假设这更像是一个概念性问题,是的,这是可以做到的。我开发了一个应用程序,该功能需要使用NSNotification 以编程方式通过多个级别的表格视图进行动画处理。本质上,您可以只使用从tableView:didSelectRowAtIndexPath: 调用的共享方法,您可以直接调用该方法来“选择”表格单元格并执行默认操作。

如果这回答了你的问题,请告诉我。

【讨论】:

    【解决方案2】:

    是的,可以做到。可以有很多方法,一种方法是这样-

    1.在你的 VC2 的 viewDidAppear 中有这行 -

    override  func viewDidAppear() {
      super.viewDidAppear()
    
      let rowToSelect:NSIndexPath = NSIndexPath(forRow: 0, inSection: 0)
    
      tableView.selectRowAtIndexPath(rowToSelect, animated: true, scrollPosition: UITableViewScrollPosition.None)
    
      self.tableView(tableView, didSelectRowAtIndexPath: rowToSelect)
    }
    
    1. 在您的 tableView 方法中 didSelectRowAtIndexPath -

      func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
       if indexPath.row == 0 {
           self.presentVC3()
       }
      }
      
      func presentVC3() {
      //Initialize VC3
      // And Segue to VC3
      }
      

    【讨论】:

    • 这当然可以,但是在 VC3 代码中需要小心,因为它现在可能由两个不同的控制器呈现。在我在回答中描述的场景中,我们需要让 VC2 的代码像用户点击单元格一样执行。考虑到这些问题,这个答案可能是解决方案。
    • 为什么 VC3 将由两个不同的控制器呈现,其中明确提到 VC3 将在选择第一个单元格后从 VC2 呈现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 2015-10-05
    相关资源
    最近更新 更多