【问题标题】:How to pass array of images to detailView Swift?如何将图像数组传递给 detailView Swift?
【发布时间】:2015-07-07 01:26:02
【问题描述】:

我一直在制作一个测试应用程序来继续我的快速学习,今天我遇到了一个问题。 基本上我有一个tableview 和一个detailview。对于我的 tableview 文件,我有一些当前传递给 detailview 的数据,例如导航栏上的名称、一个图像和一些文本,这些数据存储在我的 tableview 文件的数组中,我使用“prepareforsegue”来传递此信息:

var names = ["name1","name2","name3"]
detailViewController.detailName = names[indexPath.row]

然后在我的 detailViewController 中为此设置了变量:

var detailName: String?

然后我用它来做一些事情,例如:命名我的导航栏或在 detailView 中设置图像:

navigationItem.title = detailName!

现在,我不知道如何将整个信息数组传递给我的 detailViewController 中的一个变量。我想要做的是传递一组图像以在我的 detailView 上使用它。我希望能够用一个按钮遍历图像数组,我知道如何设置它,但我只需要知道如何传递数组,现在我只是传递其中一个值(一个名字,一个图片等...)

提前感谢您的帮助。

【问题讨论】:

    标签: arrays image swift


    【解决方案1】:

    这和你所做的没什么不同。

    只需在detailViewController 中添加图像字段,然后使用它传递图像。图像可以用[UIImage] 表示。但是,[String] 也可以用于本地文件名,[NSURL] 可以用于远程图像 url。

    代码:

    DetailViewController:

    var images: [UIImage]? // or var images: [UIImage] = []
    

    prepareForSegue:

    detailViewController.images = YourImages
    

    【讨论】:

      【解决方案2】:

      您似乎在要求以下两件事之一:

      • 一个 UIImage 数组,您可以使用 var imageArray : [UIImage] = [] 声明它,然后附加您想要传递的任何图像。

      或者,您可以传入 [AnyObject] 数组并将其元素转换为 UIImage 或 String

      var objectArray : [AnyObject] = []
      objectArray.append("test")
      objectArray.append(UIImage(named: "test.png")!)
      
      if let s = objectArray[0] as? String {
        // Do something with the string
      }
      if let i = objectArray[1] as? UIImage {
        // Do something with the image
      }
      if let s = objectArray[1] as? String {
        // The above cast fails, this code block won't be executed
      } else {
        // ... but this one will
      }
      

      【讨论】:

        【解决方案3】:

        在表视图控制器文件中:

        override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            // Get reference to the destination view controller
            var detailVC = segue.destinationViewController as! DetailViewController
            var detailImages: Array<UIImage> = []
            detailImages.append(UIImage(named: "pup.png")!)
            detailImages.append(UIImage(named: "cutepuppy.png")!)
            detailVC.detailImages = detailImages;
        }
        

        在详细文件中:

            var detailImages: Array<UIImage>?
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-03
          • 1970-01-01
          • 2017-05-30
          • 2011-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多