无法推送到导航控制器

问题描述 投票:0回答:2
 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // 1: try loading the "Detail" view controller and typecasting it to be DetailViewController
    if let vc = storyboard?.instantiateViewController(withIdentifier: "Detail") as? DetailViewController {
        // 2: success! Set its selectedImage property
        vc.selectedImage = pictures[indexPath.row]

        // 3: now push it onto the navigation controller
        navigationController?.pushViewController(vc, animated: true)
    }
}

我面临问题-1.从“ UIViewController”投射?无关类型'DetailViewController'总是失败2.无法将类型“ DetailViewController”的值转换为预期的参数类型“ UIViewController”

ios swift xcode swift5
2个回答
0
投票

似乎DetailViewController不是UIViewController的子类。要解决此问题,请按如下所示修改DetailViewController定义:

class DetailViewController: UIViewController {

0
投票

还有另一种方法:将tableView单元格中的序列添加到情节提要上的视图控制器中

enter image description here

然后以这种方式在prepare(for segue)方法中配置detailViewController:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let vc = segue.destination as? DetailViewController {
        vc.selectedImage = pictures[indexPath.row]
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.