我的故事板中有2个视图。第一个视图是登录屏幕,用户在其中输入电子邮件和密码,在单击登录按钮后,函数创建与API的HTTP连接,API检查并验证用户并发送回JSON数据。现在JSON数据在VIEW 1中。我已经以编程方式执行了我的segue,如下面的代码所示:
dispatch_async(dispatch_get_main_queue()) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("detailView") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)
}
如何将JSON数据从VIEW 1传递到VIEW 2?我尝试使用prepareForSegue,因为我要求segue标识符,因为我已经以编程方式执行了我的segue,我没有segue标识符。我的故事板图片如下:
任何帮助将不胜感激。 提前致谢。如果您需要更多信息来回答这个问题,请告诉我。
答案 0 :(得分:1)
而不是这个,您可以在新类中设置一个函数,并将数据推送到它,如下所示:
dispatch_async(dispatch_get_main_queue()) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("detailView") as! UIViewController
vc.setJSONObject(yourJSON)
self.presentViewController(vc, animated: true, completion: nil)
}
在您的UIViewController中,您可以定义一个名为setJSONObject
的函数
func setJSONObject(json:AnyObject){
print(json)
}
答案 1 :(得分:1)
使用标识符在 Interface Builder 中创建一个segue。
使用以下代码执行segue:
self.performSegueWithIdentifier("MySegue", sender: self);
这样prepareForSegue
将被执行。
以下是您案例中的情况示例
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "MySegue")
{
if let detailsViewController = segue.destinationViewController as? DetailViewController {
detailsViewController.jsonData = YOUR_JSON_STUFF;
}
}
}