[英]How to pass data from a 2nd VC to a VC inside a container in 1st VC in swift
[英]Swift: How to pass data from TableViewController to Details VC
我有一個表視圖控制器,其中包含Firebase數據庫中的3個變量。 我想將此數據傳遞給Details View Controller。 現在,我只有從TableVC傳遞到Details VC的“ title”(label1)。
如何將其余數據(label2和label3)傳遞給DetailsVC?
MondayTableVC:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell_Monday")
let messageSnapshot: FIRDataSnapshot! = conf[indexPath.row]
let message = messageSnapshot.value as! Dictionary<String, String>
// print(message)
let label1 = cell?.viewWithTag(1) as! UILabel
label1.text = message["title"]
let label2 = cell?.viewWithTag(2) as! UILabel
label2.text = message["place"]
let label3 = cell?.viewWithTag(3) as! UILabel
label3.text = message["date"]
return cell!
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let messageSnapshot: FIRDataSnapshot! = conf[indexPath.row]
let message = messageSnapshot.value as! Dictionary<String, String>
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let monDetails = storyBoard.instantiateViewControllerWithIdentifier("mondayDetails") as! MondayViewController
monDetails.title = message["title"]
monDetails.mondayDetailDict = message
self.navigationController?.pushViewController(monDetails, animated: true)
}
星期一(詳細信息)ViewController:
class MondayViewController: UIViewController {
var mondayDetailDict: Dictionary<String, String> = Dictionary()
@IBOutlet weak var label1: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
有人可以幫助解決這一挑戰嗎?
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let messageSnapshot: FIRDataSnapshot! = conf[indexPath.row]
let message = messageSnapshot.value as! Dictionary<String, String>
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let monDetails = storyBoard.instantiateViewControllerWithIdentifier("mondayDetails") as! MondayViewController
monDetails.title = message["title"]
let cell = tableView.cellForRow(at: indexPath) as! CellClass
let label2 = cell?.viewWithTag(2) as! UILabel
monDetails.field2 = label2.text
let label3 = cell?.viewWithTag(3) as! UILabel
monDetails.field3 = label3.text
monDetails.conferenceDetailDict = message
self.navigationController?.pushViewController(monDetails, animated: true)
}
您實際上沒有將值分配給label1
。 將MondayViewController
更改為此:
class MondayViewController: UIViewController {
var mondayDetailDict: Dictionary<String, String> = Dictionary()
@IBOutlet weak var label1: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
label1.text = mondayDetailDict["place"]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.