我正在使用 swift
在 Xcode 7
.我对 Swift, Xcode, and Firebase
完全陌生.我想要三个UITableViewController
在我的 iOS 应用程序中。前两个TableView controllers
将需要动态内容,而第三个 TableView Controller 将需要静态内容。我希望第二个和第三个 TableView Controller 根据前一个 TableView Controller 上按下的内容显示数据。所有数据都来自我的 Firebase。我不知道从哪里开始。请指出我正确的方向!谢谢!
最佳答案
这个问题很广泛,因为它询问如何完成三个不同的任务。
如果您一次只要求一件事,我认为您最好得到答案。
我可以帮你填写 UITableViewController
与 Firebase。
class MyTableViewController: UITableViewController {
// your firebase reference as a property
var ref: Firebase!
// your data source, you can replace this with your own model if you wish
var items = [FDataSnapshot]()
override func viewDidLoad() {
super.viewDidLoad()
// initialize the ref in viewDidLoad
ref = Firebase(url: "<my-firebase-app>/items")
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// listen for update with the .Value event
ref.observeEventType(.Value) { (snapshot: FDataSnapshot!) in
var newItems = [FDataSnapshot]()
// loop through the children and append them to the new array
for item in snapshot.children {
newItems.append(item as! FDataSnapshot)
}
// replace the old array
self.items = newItems
// reload the UITableView
self.tableView.reloadData()
}
}
}
该技术使用
.Value
事件,你也可以使用.ChildAdded
, 但是你必须跟踪 .ChildChanged
, '.ChildRemoved' 和 .ChildMoved
,这可能会变得非常复杂。The FirebaseUI library for iOS handles this pretty easily.
dataSource = FirebaseTableViewDataSource(ref: self.firebaseRef, cellReuseIdentifier: "<YOUR-REUSE-IDENTIFIER>", view: self.tableView)
dataSource.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
let snap = obj as! FDataSnapshot
// Populate cell as you see fit, like as below
cell.textLabel?.text = snap.key as String
}
关于ios - 使用 Firebase 数据 Swift、Xcode 7 填充 UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246602/