【发布时间】:2023-03-22 02:13:01
【问题描述】:
我能够在没有任何故事板的情况下以编程方式从一个ViewController 移动到另一个,现在是我需要传输数据的部分,在我的rootViewController 中,我有这种形式的数据:
var restaurants:[Restaurant] = [
Restaurant(name: "Cafe Deadend", image: "cafedeadend.jpg", isVisited: false),
Restaurant(name: "Homei", image: "homei.jpg", isVisited: false) ]
当然Restaurant 是我的模型部分中的一个类....
现在在我的根控制器中,我像这样移动到另一个控制器......
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let detailView: DetailViewController = DetailViewController()
detailView.restaurant = restaurants[indexPath.row]
self.navigationController?.pushViewController(DetailViewController(), animated: false)
}
当然在我的DetailViewController 我有这个
var restaurant = Restaurant()
但是在这里,当我尝试在DetailViewController 中显示这样的图像时,期望图像名称与RestaurantViewController 中的代码一起出现我得到 nil....
let imageHeader = UIImageView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
imageHeader.image = UIImage(named: self.restaurant.image)
我总是得到图像的 nil 值,我应该得到图像的字符串名称,谁能指导我哪里出错了,为什么值没有从一个控制器转移到另一个控制器。
【问题讨论】:
-
这能回答你的问题吗? Passing Data between View Controllers
-
var restaurant = Restaurant()将覆盖您之前使用detailView.restaurant = restaurants[indexPath.row]设置的餐厅。 -
您在哪里创建了 DetailViewController 中的
var restaurant = Restaurant()?DetailViewController是以编程方式创建的还是使用故事板创建的? -
它是一个单独的类 .swift 文件,以编程方式,谢谢
标签: ios swift uiimageview