在swift中将对象的多个属性映射到字典

时间:2016-04-08 00:12:33

标签: ios swift uitableview dictionary firebase

我有一个包含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 = ""

这就是我现在在故事板中的内容:

我希望密钥以蓝色填充信息,并使用值填充这些单元格中的实际信息。

0 个答案:

没有答案