有一个类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
}
}
您需要在其中写入什么内容才能转到信息控制器?
3条答案
按热度按时间cnjp1d6j1#
我假设您使用的是故事板。首先,您需要在两个视图控制器之间设置某种类型的连接。你可以通过设置一个“段”来做到这一点。按住Ctrl键并单击,从第一个视点控制器拖动到第二个视点控制器。它看起来是这样的:
当您松开鼠标时,您将看到以下内容:
点击Show(显示)。现在,您将创建一个Segue。现在你需要给它起个名字。因此,点击故事板中显示的片段。它基本上只是一个从菜单视图控制器到信息视图控制器的箭头。在右侧,您将看到一个地方,您可以在其中命名它(给它一个标识符):
现在..。。你已经完成了你在故事板中需要做的所有事情。现在,在MenuView控制器中的实际代码中,您需要关联单击表视图单元格。您可以使用委托方法didSelectRowAt来执行此操作。
我看到您已经使用以下行设置了委托:
menuTableView.delegate = self
这确保了每当用户点击一行时都会调用
didSelectRowAt
。因此,现在您要做的是编写代码来执行段:
注意:以下是有关与表视图行How to detect tableView cell touched or clicked in swift交互的详细信息
以下是有关segues的更多信息:IOS - How to segue programmatically using swift
您可以进行更多的定制...例如通过segues将数据传递到下一个视点控制器。方法如下:Pass data through segue
elcex8rz2#
实现UITableViewDelegate方法:
xmakbtuz3#
只需添加一个
“didSelectRowAt”中的
nextViewController.didMove(toParentViewController: self)
。下面给出了一个例子。这是用于列出表视图单元格的:
现在,它用于选择表视图单元格: