有許多關於如何通過segue傳遞數據的教程,所以這是一個快速和簡短的片段。
假定以下
甲MasterViewController用的tableView顯示用戶名。 tableView有一個用UserClass對象填充的數組dataSource。這些對象從Firebase填充。
UserClass {
userName = ""
shoeSize = ""
}
帶有文本標籤的DetailViewController。
一個Segue公司稱爲是綁到行上的tableView的MasterViewController到DetailViewController
這賽格瑞「激活」當的tableView一排被竊聽,並會顯示用戶的一種顯示詳細信息「showDetail」鞋子的尺寸在detailViewController
下面是當masterViewController tableView中的一行被點擊時調用的代碼(在MasterViewController中)。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let aUser = usersArray[indexPath.row]
let shoeSize = aUser.shoeSize
let controller = (segue.destination as!
UINavigationController).topViewController as! DetailViewController
controller.shoeSize = shoeSize
}
}
}
在detailViewController
填充的變量時,顯示它
@IBOutlet weak var shoeSizeLabel: UILabel!
func configureView() {
if let shoe = self.shoeSize {
if let label = self.shoeSizeLabel {
label.text = shoe
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.configureView()
}
var shoeSize: String? {
didSet {
self.configureView()
}
}
來源
2017-02-11 21:09:56
Jay
很模糊的問題,但有兩個直接的解決方案。 1)當你填充你的初始數據源(數組)時,包含所需的數據,並且當繼續到另一個視圖控制器時通過segue傳遞'額外'數據。 2)轉換到另一個視圖控制器時,會從Firebase加載數據並顯示在控制器中。還有大約50種其他方式可以解決這個問題,但是沒有特定的用例數據,Firebase結構和代碼,這只是猜測而已。 – Jay
@jay在Firebase中,我有一個名爲'posts'的小節,它包含我所有的帖子。這些帖子顯示在主頁面上的單元格中,該單元格還具有「詳細信息」按鈕,該按鈕具有到單獨視圖控制器的繼續。我想要做的是在獨立的視圖控制器中調用某個帖子,然後在UI標籤中顯示該帖子的數據。圖片:http://m.imgur.com/c7fEKks?r.png – gabe
瞭解。我評論中的兩條建議都是解決方案。 – Jay