簡體   English   中英

Swift:如何將數據從TableViewController傳遞到Details VC

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM