另一個視圖控制器我有兩個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
是的,我正在使用它。 –
您可以使用委託或關閉。 –