【发布时间】:2020-06-08 09:42:16
【问题描述】:
我正在从第三个视图控制器向第一个视图控制器发送数据到 tableview,现在第一次将数据添加到 tableview 但是如果从第一个视图控制器转到另一个视图控制器并且我回到第一个视图控制器然后添加表格视图中的数据来了为什么?
在第 3 个视图控制器中将数据发送到第 1 个视图控制器表视图,如下所示:
var viewController: UIViewController?
@IBAction func confirmBtn(_ sender: Any) {
for controller in navigationController?.viewControllers ?? [] {
if let listController = controller as? ProfileViewController {
guard let string = addressLabel.text else { return }//"\(sublocalityName ?? "") \(zipName ?? "") \(localityName ?? "")"
listController.addressArray.append(string)
navigationController?.popToViewController(controller, animated: true)
return
}
}
}
在第一个视图控制器中向 tableview 添加数据,如下所示:
@IBOutlet weak var addeditTableview: UITableView!
var addressArray = [String]()
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.isHidden=true
addeditTableview.reloadData()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return addressArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// let cell: EditAddressTableViewCell = addeditTableview.dequeueReusableCell(withIdentifier: "EditAddressTableViewCell") as! EditAddressTableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "EditAddressTableViewCell", for: indexPath) as! EditAddressTableViewCell
cell.editButton.addTarget(self, action: #selector(editbuttonClicked(sender:)), for: .touchUpInside)
cell.nameHeader.text = "Other"
cell.addressLabel.text = addressArray[indexPath.row]//"\(city) \(pincode) \(locality)"
return cell
}
添加表视图后,如果我转到其他视图控制器,如果我回到表视图,则附加值不会出现,为什么? 请帮忙写代码。
【问题讨论】:
-
当你为其他 ViewController 而不是你的第三个 Controller 回来时,你是否希望已经存在的数据在那里?
标签: swift uitableview uinavigationcontroller