有一个类MenuViewController,里面记录了表格中记录的数组:
import Foundation
import UIKit
class MenuViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var menuTableView: UITableView!
let myTitle = ["Помощь", "Информация", "Поддержка"]
override func viewDidLoad() {
super.viewDidLoad()
menuTableView.delegate = self
menuTableView.dataSource = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myTitle.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = menuTableView.dequeueReusableCell(withIdentifier: "MenuCell") as! MenuTableViewCell
cell.labelText.text = myTitle[indexPath.row]
return cell
}
}
需要在里面写什么才能转到Info Controller?
最佳答案
我假设您正在使用 Storyboard。首先,您需要在两个 View Controller 之间建立某种连接。您可以通过设置“segue”来做到这一点。您按住 ctrl 并单击从第一个 View Controller 拖动到第二个 View Controller 。它看起来像这样:
当你松开鼠标时,你会看到:
点击显示。现在您将创建一个 segue。 现在你需要给它命名。因此,单击 Storyboard 中显示的 segue。它基本上只是一个从菜单 View Controller 到信息 View Controller 的箭头。在右侧你会看到一个你可以命名它的地方(给它一个标识符):
现在……您已经完成了 Storyboard中需要做的所有事情。现在在 MenuViewController 的实际代码中,您需要关联单击 tableviewcell。您可以使用委托(delegate)方法 didSelectRowAt 来执行此操作。
我看到您已经使用以下行设置了委托(delegate):
menuTableView.delegate = self
这确保了只要用户点击一行,就会调用 didSelectRowAt
。
所以现在您要做的是编写代码来执行 segue:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "YourSegueName", sender: self)
}
注意: 以下是有关与 tableview 行交互的更多信息: How to detect tableView cell touched or clicked in swift
这里是关于转场的更多信息: IOS - How to segue programmatically using swift
您还可以进行更多自定义...例如通过 segue 将数据传递到下一个 View Controller 。就是这样: Pass data through segue
关于ios - 通过快速单击 TableView 单元格转到 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819575/