【发布时间】:2021-02-05 14:43:50
【问题描述】:
我正在测试 Swift,我创建了一个表格列表来显示 JSON 数据,现在我想显示每个单元格的详细信息,点击它,进入一个新的视图控制器。
测试应用程序我点击了单元格,但没有看到新视图。
这是捕获点击进入 ViewController.swift 的代码:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
{
private let tableView: UITableView = {
let table = UITableView(frame: .zero,
style: .grouped)
table.register(UITableViewCell.self,
forCellReuseIdentifier: "cell")
return table
}()
private let tableView: UITableView = {
let table = UITableView(frame: .zero,
style: .grouped)
table.register(UITableViewCell.self,
forCellReuseIdentifier: "cell")
return table
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
parseJSON()
view.addSubview(tableView)
tableView.frame = view.bounds
tableView.delegate = self
tableView.dataSource = self
}
....
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let vc = storyboard?.instantiateViewController(withIdentifier: "Detail") as? DetailViewController {
vc.selectedImage = "images/logo_2-mini.png"
print("Click \(indexPath) " + vc.selectedImage!) // I see it!
navigationController?.pushViewController(vc, animated: true) // I don't see it
}
}
}
这是 DetailViewController
import UIKit
class DetailViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var selectedImage: String?
override func viewDidLoad() {
super.viewDidLoad()
print("Pre")
if let imageToLoad = selectedImage{
imageView.image = UIImage(named: imageToLoad)
print("ok")
}
}
}
我是 swift 的新手!你能帮帮我吗?
【问题讨论】:
-
您确定 ViewController 是导航堆栈的一部分吗?
-
self.navigationController?.viewControllers 看起来是空的...
-
“看起来是空的”?不,最好问(更明确):
self.navigationControllernil 吗? -
是的,它是nil
-
请将您的视图控制器嵌入到导航控制器中
标签: swift navigationcontroller