Ios 将数据从视图控制器传递到tabbarviewcontroller
我正在从视图控制器切换到tabbarcontroller,我想传递数据。我想将“sendAuthor”传递给tabbarcontroller的第一个视图控制器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
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我把它挂在了塔巴上