无法从表视图中的索引路径获取正确的元素

时间:2017-06-15 16:25:33

标签: ios swift

我正在尝试将用户信息转移到另一个segue但是当我在表格视图中选择用户时,它会显示另一个用户的信息,而不是它所假设的信息。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "ShowUser" {
            if let indexPath = followUsersTableView.indexPathForSelectedRow {
                let user = usersArray[indexPath.row]
                let controller = segue.destination as? OtherUserProfile
                controller?.otherUser = user
                controller?.loggedInUser = loggedInUser

            }
        }
    }

1 个答案:

答案 0 :(得分:1)

也许您应该在didSelectRowAt委托方法中发送您的用户。如果未实现,请添加方法:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let user = usersArray[indexPath.row]
    self.performSegue(withIdentifier: "ShowUser", sender: user)

}

然后在准备segue add:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "ShowUser" {
        let controller = segue.destination as? OtherUserProfile
        controller?.otherUser = sender as! YourUserClass
        controller?.loggedInUser = loggedInUser
    }
}

请记住使用用户的实际类更改“YourUserClass”。也许如果使用firebase它就像FIRUser。

希望它有所帮助,不要犹豫。