另一个视图控制器我有两个UIViewControllers和每一个具有的UITableView。比方说,当我从View-A调用到View-B时,我将在View-B中的UITableView中标记的单元格取出,在按下一个按钮后,我想返回一个包含从View-B中选择的所有数据的数组查看-A,关闭View-B并在View-A的TableView中表示该信息。 我该如何传递数组?我该如何在View-A中实时加载数据以在轻视View-B之后显示它?返回数组中夫特
有什么想法? 非常感谢!
另一个视图控制器我有两个UIViewControllers和每一个具有的UITableView。比方说,当我从View-A调用到View-B时,我将在View-B中的UITableView中标记的单元格取出,在按下一个按钮后,我想返回一个包含从View-B中选择的所有数据的数组查看-A,关闭View-B并在View-A的TableView中表示该信息。 我该如何传递数组?我该如何在View-A中实时加载数据以在轻视View-B之后显示它?返回数组中夫特
有什么想法? 非常感谢!
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
}
}
}
真棒兄弟,这个作品真的很好!非常感谢你! –
最受欢迎;)快乐编码! –
所以,你可以使用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()
}
}
}
在“如果让控制器== segue.destination as?ListsViewController”这行中说变量绑定在一个条件需要一个initilizer。任何想法 ? –
我的代码出错了,现在检查它 – Phyber
谁降低了这个数字,为什么?我通常会将变量传递给其他VC。这有什么问题? –
您将需要使用委托这一点。有关代表的更多信息,您可以通过我的博客here。
您使用的故事板? – Phyber
是的,我正在使用它。 –
您可以使用委托或关闭。 –