私はできることすべてを試していますが、何も動作していないようです。あるビューコントローラから別のビューコントローラにfirebaseユーザ情報を渡そうとしていますが、決して表示されません。ビューコントローラーにデータが表示されない
テーブルビューから開始します テーブルビューには、firebaseデータベースから引き出されているユーザーが表示されます。ユーザは、次のコードが実行されますセル選択した場合: を私が「userProfileNavigator」で
var mainProfile: userProfileNavigator?
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let user1 = self.users[indexPath.row]
self.mainProfile?.showProfileControllerForUser(user3: user1)
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let vc: UINavigationController = storyboard.instantiateViewController(withIdentifier: "mainNavProfile") as! UINavigationController
self.present(vc, animated: true, completion: nil)
}
を選択されたセルのデータを転送する方法として、機能「showProfileControllerForUser」を参照している場合に使用された関数前にです。この関数は収集された情報を渡し、最終的な宛先に渡します。
func showProfileControllerForUser(user3: User){
mainProfile?.user2 = user3
}
最後に、「mainProfile」はデータを渡す場所です。
var user2: User?{
didSet{
navigationItem.title = user2?.name
}
私は、これは非常に混乱している想像できる必要
のようなセットアップテーブルにしようとした場合、私はもう情報や明瞭さを提供することができます。情報がある
var mainProfile: mainProfile?
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let user1 = self.users[indexPath.row]
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let vc: UIViewController = storyboard.instantiateViewController(withIdentifier: "mainProfile")
self.mainProfile?.user2 = user1
self.present(vc, animated: true, completion: nil)
}
とのViewControllerします
import UIKit
import Firebase
class mainProfile: UIViewController{
@IBOutlet weak var testLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
print("lets see if this is the new user", user2.name as Any)
}
var user2 = User()
}
しかし、それでも "nil 「あなたはその渡された値で、コントローラを開きたい場合は
No luck:/あなたが提案したように、テーブルビューとビューコントローラを設定しました(上記参照) – Otheprogrammer
私は自分の答えを更新しました。それが働いたら教えてください。 –