我有一个包含13个属性的User类(名字,姓氏,电子邮件等)。我想在我的应用程序中的类似联系人的卡片中显示所有这些信息。我不想在“联系人”应用中访问我的(或任何其他用户)联系人,我只是想创建一个看起来像这样的视图。
我的第一次尝试是手动创建所有内容。我使用静态单元格创建一个UITableView,并使用正确的数据手动填充每个单元格。但是,这真的很乏味,不允许扩展。
如果我可以使用可重复使用的单元格并动态填充数据,我会更喜欢它。我想获取User的所有属性并将它们放入字典中,然后将这些字典存储在每个用户的数组中,然后将所有这些数组放在一个数组中。我可以弄清楚后两项。我无法弄清楚如何将所有属性都放入字典中。
来自ContactCardTVC:
override func viewDidLoad() {
super.viewDidLoad()
fullNameTextField.text = user.firstName+" "+user.lastName
positionTextField.text = user.position
emailTextField.text = user.email
phoneNumberTextField.text = user.phoneNumber
birthdayTextField.text = user.birthday
dateStartedTextField.text = user.dateStarted
teamTextField.text = user.team
serviceTextField.text = user.service
scheduleTextField.text = user.schedule
editButtonItem()
TitleNavigatonItem.title = user.firstName+" "+user.lastName
self.navigationItem.rightBarButtonItem = editButtonItem()
来自AdminTVC:
var users = [User]()
func fetchUsers() {
let userRef = ref.childByAppendingPath("users")
userRef.observeEventType(.Value, withBlock: {snapshot in
var newUsers = [User]()
for user in snapshot.children {
let users = User(snapshot: user as! FDataSnapshot)
newUsers.append(users)
}
self.users = newUsers
self.tableView.reloadData()
})
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SeeContactCardSegue" {
if let destVC = segue.destinationViewController as? ContactCardTVC {
if let indexPath = tableView.indexPathForSelectedRow {
let user = users[indexPath.row]
destVC.user = user
}
}
}
}
来自用户:
class User {
var firstName = ""
var lastName = ""
var email = ""
var birthday = ""
var team = ""
var schedule = ""
var service = ""
var position = ""
var phoneNumber = ""
var dateStarted = ""
var profileImgURL = ""
var notes = ""
我希望密钥以蓝色填充信息,并使用值填充这些单元格中的实际信息。