【问题标题】: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 进行了检查。

标签: ios swift presentviewcontroller


【解决方案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 件。
猜你喜欢
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
相关资源
最近更新 更多