2017-11-18 5 views
-2

ユーザー情報全体を渡したい、私はUserクラスがあります。ユーザー名、名前、UID、イメージを別のView Controllerに渡したいと思います。テーブルビューから別のビューコントローラに複数の値を渡そうとしています

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! NewChatTableViewCell 

     let user = usersarray[indexPath.row] 
     let ColorView = UIView() 
     ColorView.backgroundColor = UIColor(red: 0.05, green: 0.15, blue: 0.28, alpha: 0.7) 
     cell.selectedBackgroundView = ColorView 
     cell.backgroundColor = UIColor.clear 
     cell.backgroundView?.backgroundColor = UIColor.clear 
     cell.firstname.text = user.firstname! + " " + user.lastname! 
     cell.username.text = "@" + user.username! 
     cell.userimage?.layer.masksToBounds = true 
     cell.userimage.layer.cornerRadius = 20 
     cell.userimage.clipsToBounds = true 
     if let profileimage = user.profilepic 
     {cell.userimage.loadImageCache(urlString: profileimage)} 
     return cell 
    } 

    func callmessage(){ 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let controller = storyboard.instantiateViewController(withIdentifier: "message") 
     self.present(controller, animated: true, completion: nil) 
    } 

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let indexPath = tableView.indexPathForSelectedRow! 
     callmessage(user: User!) 
    } 
+0

ヒント: 'prepareForSegue()'。このビューのデータを受け取り、現在のviewcontrollerでこのメソッド内の値を割り当てるために、 。幸いです! –

+0

TableViewsでデータを扱うために 'struct'を使用することをお勧めします - 別のViewCoでデータを参照するにはそのタイプのグローバルオブジェクトを作成するのと同じくらい簡単です。 – KSigWyatt

+0

宛先クラスにタプルを作成し、あるクラスのタプルをすべての値を持つ別のクラスに渡すこともできます –

答えて

0

サブクラスのUITableViewCellは()タイプのUITableViewCellの新しいファイルを作成し、UserTableViewCellのようなものを呼び出します。タイプユーザのプロパティを追加します(またはユーザークラスがあるものは何でも。DidSelectRowAtIndexPath上のUIViewController同等のユーザープロパティを設定しますUserControllerのUserプロパティに渡して、View Controllerを表示します。