Closed. This question needs to be more focused。它目前不接受答案。
想改进这个问题吗?更新问题,使其只关注一个问题editing this post
11个月前关闭。
对不起,我英语不好。
我想要这样:当有人点击一个单元格时,它会在另一个视图控制器中打开。
我以编程方式创建了表视图。
import UIKit
class BibleBooksViewController: UIViewController, UITableViewDelegate,
UITableViewDataSource {

private let myArray: NSArray = ["Gênesis", "Êxodo", "Levitico"]
private var myTableView: UITableView!
var bibleArray = BibleBooksMock().booksArray

override func viewDidLoad() {
    super.viewDidLoad()

    let barHeight: CGFloat =
UIApplication.shared.statusBarFrame.size.height
    let displayWidth: CGFloat = self.view.frame.width
    let displayHeight: CGFloat = self.view.frame.height

    myTableView = UITableView(frame: CGRect(x: 0, y: barHeight, width:
displayWidth, height: displayHeight - barHeight))
    myTableView.register(UITableViewCell.self, forCellReuseIdentifier:
"MyCell")
    myTableView.dataSource = self
    myTableView.delegate = self
    self.view.addSubview(myTableView)
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section:
Int) -> Int {
    return bibleArray.count
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath:
IndexPath) -> CGFloat {
    return 70
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
-> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for:
indexPath as IndexPath)
    cell.textLabel!.text = "\(bibleArray[indexPath.row].title)"
    return cell
 }
}

结果是:
swift - 如何将两个 View  Controller 链接到以编程方式创建的表 View ?-LMLPHP
iOS版本是12.1
swift版本是4.2

最佳答案

将此添加到BibleBooksViewController

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let chapter = bibleArray[indexPath.row]
    var vc = ChapterViewController()
    vc.chapterName = chapter.title
    navigationController?.pushViewController(vc, animated: true)
}

定义这个控制器:
class ChapterViewController: UIViewController {

    var chapterName: String?

    override func viewDidLoad() {
        super.viewDidLoad()
        title = chapterName

        view.backgroundColor = UIColor.white
    }

}

关于tableView(_:didSelectRowAt:)here的更多信息。

关于swift - 如何将两个 View Controller 链接到以编程方式创建的表 View ? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53900054/

10-11 19:51