在两个视图控制器之间传递数据不起作用
Posted
技术标签:
【中文标题】在两个视图控制器之间传递数据不起作用【英文标题】:Passing data between two view controllers are not working 【发布时间】:2016-05-05 18:19:59 【问题描述】:我试图在两个视图控制器之间传递一些数据,但它不起作用..
这是我试图传递的数据(这些数据来自 parse.com - 两个视图控制器中的代码相同):
var userFile = [PFFile]()
var createdAt = [NSDate]()
var objID = [String]()
这是打开视图控制器的按钮(在我试图从第一个视图控制器中发送数据):
@IBAction func openButtonAction(sender: AnyObject)
let modalVC = ModalViewController(nibName: "ModalViewController", bundle: nil)
modalVC.userFile = self.userFile
modalVC.createdAt = self.createdAt
modalVC.objID = self.objID
print("USERFILE: \(modalVC.userFile.count)")
presentViewController(modalVC, animated: true, completion: nil)
视图控制器是一个连接到ViewStoryModalViewController.swift
的ModalViewController.xib
这是视图控制器中的 viewDidLoad 我试图将数据发送到:
override func viewDidLoad()
super.viewDidLoad()
print("USERFILECOUNT: \(self.userFile.count)")
我的问题是这是我在 xCode 输出中得到的消息:
这里可能有什么问题?有什么建议吗?
【问题讨论】:
我们能看到两个视图控制器的完整代码吗?例如,很难说出第一个中的self.userFile
包含什么。
@grez 它确实包含一个对象。我在查询后使用print
进行了检查。
【参考方案1】:
xCode 输出告诉数组 self.userFile 包含零个元素,这并不意味着它传递错误。它只是空的。
print("USERFILECOUNT: \(self.userFile.count)")
在将它传递给模态vc之前检查它是否为空。
【讨论】:
通过前不为空。 如果你的 ModalViewController.xib 与 ViewStoryModalViewController.swift 连接,你应该这样初始化它: let modalVC = ViewStoryModalViewController(nibName: "ModalViewController", bundle: nil) 我收到此错误:Use of unresolved identifier "ViewStoryModalViewController"
。这是我的控制器:s32.postimg.org/rmrfuw91h/… - 在课堂内:class ModalViewController: UIViewController
里面声明了什么类?
在ViewStoryModalViewController.swift
里面写着:class ModalViewController: UIViewController
【参考方案2】:
试试这个代码 您首先需要呈现,然后尝试设置变量。
IBAction func openButtonAction(sender: AnyObject)
let modalVC = ModalViewController(nibName: "ModalViewController", bundle: nil)
print("USERFILE: \(modalVC.userFile.count)")
presentViewController(modalVC, animated: true, completion: nil)
modalVC.userFile = self.userFile
modalVC.createdAt = self.createdAt
modalVC.objID = self.objID
【讨论】:
试过了,还是得到 0 件。以上是关于在两个视图控制器之间传递数据不起作用的主要内容,如果未能解决你的问题,请参考以下文章