swift - 无法将数据传递给 viewController
问题描述
我有两个数组将区域名称和网站地址存储为字符串。此外,我还有 9 个区域按钮。当您按下其中一个按钮时,它将根据您按下的区域按钮显示不同的图片。这是我的代码:
@IBAction func westfjordsBtn(_ sender: UIButton) {
vcContainer[0].address=imgAddress[0]
vcContainer[0].areaName=areaName[0]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[0], animated: true)
}
@IBAction func northBtn(_ sender: UIButton) {
vcContainer[1].address=imgAddress[1]
vcContainer[1].areaName=areaName[1]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[1], animated: true)
}
@IBAction func northeastBtn(_ sender: UIButton) {
vcContainer[2].address=imgAddress[2]
vcContainer[2].areaName=areaName[2]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[2], animated: true)
}
@IBAction func eastBtn(_ sender: UIButton) {
vcContainer[3].address=imgAddress[3]
vcContainer[3].areaName=areaName[3]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[3], animated: true)
}
@IBAction func southeastBtn(_ sender: UIButton) {
vcContainer[4].address=imgAddress[4]
vcContainer[4].areaName=areaName[4]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[4], animated: true)
}
@IBAction func entireBtn(_ sender: UIButton) {
vcContainer[5].address=imgAddress[5]
vcContainer[5].areaName=areaName[5]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[5], animated: true)
}
@IBAction func southBtn(_ sender: UIButton) {
vcContainer[6].address=imgAddress[6]
vcContainer[6].areaName=areaName[6]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[6], animated: true)
}
@IBAction func westBtn(_ sender: UIButton) {
vcContainer[7].address=imgAddress[7]
vcContainer[7].areaName=areaName[7]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[7], animated: true)
}
@IBAction func westsouthBtn(_ sender: UIButton) {
vcContainer[8].address=imgAddress[8]
vcContainer[8].areaName=areaName[8]
loadViewIfNeeded()
self.navigationController?.pushViewController(self.vcContainer[8], animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
for i in 0 ..< vcContainer.count {
vcContainer[i] = self.storyboard?.instantiateViewController(withIdentifier: "AreaRoadDetailViewController") as! AreaRoadDetailViewController
}
}
但是,代码是从第一个按钮函数中复制的,只是更改了数组索引。只有第一个按钮可以正常工作,当我按下其他按钮时,它总是无法将 imgAddress 传递给 AreaRoadDetailViewController。
在AreaRoadDetailViewController中,总是显示地址为nil,但区域名称可以正确显示。为什么这么狂野?只有一个按钮可以工作!我该如何解决?谢谢你
解决方案
也许您已经选择了所有按钮并拖动到您的class
,这样只会设置第一个按钮。您必须分别为每个按钮设置一个方法。在检查器中检查按钮的链接。同时删除不必要的链接和方法。
推荐阅读
- api - 发现单声道
到T级 - sql - 视图中的 SQL 更改列
- odoo - 我无法从 self 获取 int id
- java - 使用 log4j2 在 AWS 日志中记录的垃圾值
- html - 反应套件
不满足 Lighthouse 标志 ARIA 角色 - ios - Swift 交互式推送通知操作失败
- html - 将 margin-top 应用于 div 移动整个内容
- python - 如何根据keras中输入信号的SNR在训练期间为数据添加不同的噪声百分比?
- java - 使用Java在Android中启用switchbox时从edittext获取数据
- python - 你可以在windows中全局设置或删除python中的环境变量吗?