如何解决如何在不同的类中创建类对象
我正在尝试从其他类B更新我的类A中的UITableView
我的第一个主要VC类中有什么代码:
import UIKit
class ViewController: UIViewController {
let networkService = NetworkService()
let cellTable = ChooseCurrencyViewController()
var response: Currency? = nil
var newValue: String? = nil
@IBOutlet weak var getData: UILabel!
@IBOutlet weak var activityData: UIActivityIndicatorView!
@IBOutlet weak var startButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let urlString = "https://www.cbr-xml-daily.ru/daily_json.js"
activityData.startAnimating()
startButton.isHidden = true
networkService.request(urlString: urlString) { (currency,error) in
guard currency != nil else { return }
DispatchQueue.main.async {
self.setupInterface()
}
currency?.valute.map({ (first,second) in
self.newValue = first
print(self.newValue ?? "no value")
})
self.response = currency
}
}
func setupInterface() {
activityData.isHidden = true
startButton.isHidden = false
getData.text = "Данные получены"
}
}
还有第二个带有UITableView的VC类:
class ChooseCurrencyViewController: UIViewController {
let tableCell = ViewController()
@IBOutlet weak var table: UITableView!
private func setupTableView() {
table.delegate = self
table.dataSource = self
table.register(UITableViewCell.self,forCellReuseIdentifier: "cell")
}
override func viewDidLoad() {
super.viewDidLoad()
setupTableView()
}
}
extension ChooseCurrencyViewController: UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return tableCell.newValue?.count ?? 3
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = table.dequeueReusableCell(withIdentifier: "cell",for: indexPath)
cell.textLabel?.text = "123"
return cell
}
}
当我尝试构建程序时,该程序只是崩溃了。
此外,我非常确定还有另一种更新UITableView的方法,如果有人可以帮助我的话,那真的很棒。
我要对表执行的操作是::设置UITableView中键 .count的行数。 ] 。
我也是编程和快速语言的新手,请提供一些建议。
解决方法
我建议使用在viewcontroller中提供新值的协议来选择currencyvc。已经有类似的解释。 https://stackoverflow.com/a/48506190/14098735
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。