我需要将一个文件中的变量值传递给另一个文件。
我尝试了此代码,但是它不起作用,在目标数据上它的值是nil:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
     var destView: OtpVC = segue.destinationViewController as! OtpVC
     destView.dataPassed = "\(mobile)"
}
OtpVC是目标ViewController,而mobile是我要传输到OtpVC View的变量。
提前致谢。

最佳答案

您在某处做错了。

如果您以编程方式推送/显示下一个OtpVC,则不会调用prepareForSegue,因此destView.dataPassed将为nilprepareForSegue仅在您在情节提要中定义视图控制器过渡或在代码中调用performSegue进行过渡时才有效。

例如,推:

if let navigationController = self.navigationController {
    let nextScreen = OtpVC()
    nextScreen.dataPassed = "\(mobile)"
    navigation.pushViewController(nextScreen)
}

或呈现:
let nextScreen = OtpVC()
nextScreen.dataPassed = "\(mobile)"
self.presentViewController(nextScreen, animated: true, completion: nil)

关于ios - 文件之间的快速传递数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30176288/

10-09 15:35