ios - 在没有 Segues 的 ViewController 之间传输数据 - Swift

标签 ios swift

我注册了 viewController(VC)。一旦用户提交了他的注册详细信息,我的远程服务器就会响应“registration_success”。收到此消息后,我可以提供一个新的 VC,请求用户检查他们的电子邮件以验证他们的电子邮件地址。我能够展示新的 View Controller ,但无法将用户的电子邮件地址转移到新的 VC。我的代码如下:

     guard
          let registeredEmail = myArray["email"] as? String else{
          print("cannot find email address")
          return
          }

          let verifyEmailVC = self.storyboard?.instantiateViewController(withIdentifier: "emailConfirmVC") as! VerifyEmailViewController
          print("registeredEmail: \(registeredEmail)")
          verifyEmailVC.emailToVerify.text! = registeredEmail
          self.present(verifyEmailVC, animated: true, completion: nil)

VerifyEmailViewController 类:

    class VerifyEmailViewController: UIViewController {

    @IBOutlet var emailToVerify: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

    }

}

控制台:

 jsonObject: {
email = "tran123@gmail.com";
firstname = Wang;
lastname = tran;
message = "registration_success";
status = 200;
userId = 53;
}
message: registration_success
registeredEmail: tran123@gmail.com

我收到以下错误:

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

行内:verifyEmailVC.emailToVerify.text! =注册邮箱

最佳答案

VerifyViewController 中的标签为 nil,您正在尝试为该标签设置值。尝试像这样将字符串传递给您的 Controller

let verifyEmailVC = self.storyboard?.instantiateViewController(withIdentifier: "emailConfirmVC") as! VerifyEmailViewController
print("registeredEmail: \(registeredEmail)")
verifyEmailVC.email = registeredEmail
self.present(verifyEmailVC, animated: true, completion: nil)


class VerifyEmailViewController: UIViewController {

@IBOutlet var emailToVerify: UILabel!
var email: String?

override func viewDidLoad() {
    super.viewDidLoad()
    emailToVerify.text = email
}

关于ios - 在没有 Segues 的 ViewController 之间传输数据 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47435546/

相关文章:

ios - UIView 在 cellForRowAtIndexPath 中再次重叠/创建

swift - 如何将 CMRotationmatrix 转到初始位置

ios - 为表格 View 的高度分配上限?

ios - 如何制作可点击的uiimage?

参数中的 Swift 复杂类型

ios - Sprite Kit - SKShapeNode 在碰撞后消失

swift - Xcode 6 swift : place 2 blocks on either side of the screen?

ios - 映射包含错误的 SignalProducer 以返回 NoError

ios - 是否可以使用 Xcode 构建脚本将 JSON 文件下载到应用程序包中?

ios - 调用 SwiftUI 中第一个声明的闭包,但不调用其他闭包