我有两个UIViewControllers,每个都有一个UITableView。让我们说当我从View-A调用View-B时,我将在View-B中的UITableView中标记单元格,按下按钮后我想返回一个数组,其中包含从View-B中选择的所有数据到View-A,关闭View-B并在View-A的TableView中表示该信息。 我怎么能通过那个阵列?如何在View-A中显示数据以便在消除View-B后显示它?
有什么想法吗? 非常感谢!!
答案 0 :(得分:1)
protocol DataPasserDelegate {
func sendDatatoA(dataArrayFromB : Array<AnyObject>)
}
class ViewB: UIViewController {
var delegate: DataPasserDelegate!
var dataArrayB = Array<AnyObject>()
@IBAction func sendData(sender: Any){
self.dismiss(animated: true) {
self.delegate.sendDatatoA(dataArrayFromB: self.dataArrayB)
}
}
}
class ViewA: UIViewController, DataPasserDelegate {
@IBOutlet weak var tableViewA: UITableView!
var dataArrayA = Array<AnyObject>()
//MARK: - DataPasserDelegate
func sendDatatoA(dataArrayFromB: Array<AnyObject>) {
dataArrayA = dataArrayFromB
self.tableViewA.reloadData()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destVC = segue.destination as? ViewB{
destVC.delegate = self
}
}
}
答案 1 :(得分:0)
所以你可以使用prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "segueID") {
if let controller = segue.destination as? YourVC{
controller.array = yourArray
controller.tableView.reloadData()
}
}
}
答案 2 :(得分:-1)
您需要使用委托。有关代表的更多信息,您可以浏览我的博客here。