ios - 将数据从 View Controller 传递到 tabbarviewcontroller

标签 ios swift xcode

我正在从一个 View Controller 切换到一个 tabbarcontroller,我想传递数据。我想将“sendAuthor”传递给 tabbarcontroller 的第一个 View Controller 。

 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(sendAuthor!) 并且我得到了正确的打印语句。我还在目标 View Controller 中包含了一个打印语句,但打印语句返回 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!)
    }
}

关于ios - 将数据从 View Controller 传递到 tabbarviewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070253/

相关文章:

ios - 如何更改 LAContext 的 StatusBar 样式

ios - itunes connect,上传后应用程序大小没有意义

ios - 添加CAGradientLayer查看

javascript - React-native,在 android 上使用全屏图像

ios - iOS 中的 Google Drive REST

ios - iPhone 5 优化旧版xib

swift - Ui 按钮未添加到 SkScene

关于字典访问的 Swift 语义

ios - 如何从 Amazon S3 下载 - iOS

ios7 - 在另一个 View Controller 之上显示一个 View Controller 但不是全屏