2017-02-11 76 views
0

我現在有一個圖象,三個UILabels,並在細胞中一個TextView並希望使用該數據在一個單獨的視圖控制器。視圖控制器目前通過push segue連接到單元,我應該怎麼做才能實現這一點?訪問火力地堡數據

我有這個,但它不工作:

let uid = FIRAuth.auth()?.currentUser?.uid 
    FIRDatabase.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in 
     if let dictionary = snapshot.value as? [String: AnyObject] { 
      self.userLabel.text = dictionary["username"] as? String 
     } 
    }) 

回答

0

實際上,我是能夠找到一個方法來做到這一點。這是很簡單的實際

prepareForSegue

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "showDetails" { 
     if let indexPath = self.postsTableView.indexPathForSelectedRow { 
      let post = posts[indexPath.row] as! [String: AnyObject] 
      let postDetails = post["postID"] as? String 
      let controller = segue.destination as! PostDetailsViewController 
      controller.postDetails = postDetails 
     } 
    } 
} 

PostDetailsViewController

var postDetails: String? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 

    FIRDatabase.database().reference().child("posts").child(postDetails!).observeSingleEvent(of: .value, with: { (snapshot) in 
     if let dictionary = snapshot.value as? [String: AnyObject] { 
      self.idLabel.text = dictionary["postID"] as? String 
     } 
    }) 
} 
0

型詞典的存儲變量添加到源和目的地VC的兩個:VAR用戶數據:字典!或者你可以初始化一個空的字典,讓用戶數據=字符串:任何

然後將轉換爲快照源VC用戶數據設置爲字典數據字典後執行SEGUE

if let dictionary = snapshot.value as? [String: AnyObject] { 
    self.userLabel.text = dictionary["username"] as? String 
    self.userdata = dictionary 
    self.performSegue(withIdentifier: "<segueIDHere>", sender: self) 
} 

,然後實現在VC在源VC SEGUE方法準備傳遞數據:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "<segueIDHere>" { 
     let destinationVC = segue.destination as! <ClassNameofVCHere> 
     destinationVC.userdata = self.userdata 
    } 
} 
+0

我要補充到DetailsViewController(單獨的視圖控制器)和MainViewController以下哪種? – gabe