Ios 将数据从视图控制器传递到tabbarviewcontroller

Ios 将数据从视图控制器传递到tabbarviewcontroller,ios,swift,xcode,Ios,Swift,Xcode,我正在从视图控制器切换到tabbarcontroller,我想传递数据。我想将“sendAuthor”传递给tabbarcontroller的第一个视图控制器 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "FirstVC" { let vc = (segue.destination as? UITabBarController)?.viewCon

我正在从视图控制器切换到tabbarcontroller,我想传递数据。我想将“sendAuthor”传递给tabbarcontroller的第一个视图控制器

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   if segue.identifier == "FirstVC" {

  let vc = (segue.destination as? UITabBarController)?.viewControllers?.first as? CommentProfileViewController

    vc?.sendAuthor = sendAuthor!
    vc?.Username.text = sendAuthor!

        print(sendAuthor!)
    }



    }
为了确保我得到了正确的东西,我包括了一个print语句
print(sendAuthor!)
,我得到了正确的print语句。我还在目标视图控制器中包含了一个print语句,但print语句返回nil

var sendAuthor: String?

override func viewDidLoad() {
        super.viewDidLoad()
print(self.sendAuthor)

}

您的VC嵌入到
UINavigationController
中。您还需要考虑到这一点:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   if segue.identifier == "FirstVC" {
       guard let tabbar = segue.destination as? UITabBarController,
             let navcon = tabbar.viewControllers?.first as? UINavigationController,
             let vc = navcon.topViewController as? CommentProfileViewController
             else { return }

       vc.sendAuthor = sendAuthor!
       vc.Username.text = sendAuthor!

       print(sendAuthor!)
    }
}

@Sh_Khan将vc本身添加到
让vc=
之前,添加以下内容:
打印(键入:(segue.destination as?UITabBarController)?.viewControllers?.first))
并让我们知道它打印的内容。您是将segue destination挂接到选项卡栏本身还是挂接到它的第一个vc,你确定第一个VC的名字是CommentProfileViewController@vacawama它打印出来了Optional@Sh_Khan我把它挂在了塔巴上