繁体   English   中英

无法将tableView或collectionView中的选定图像中的imageView馈入到detailView中

[英]Can't feed imageView from a selected image in a tableView or collectionView into a detailView

我要从一个collection或tableView中选择,无论选择哪种,它都不会出现在detail控制器中。

这些是我得到的错误:

这是detailViewController中的代码:

var meme = SentMemeImageView.self

@IBOutlet weak var sentMemesBtn: UIBarButtonItem!
@IBOutlet weak var editBtn: UIBarButtonItem!
@IBOutlet weak var sentMemeView: UIImageView!


override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    displayMeme(meme)

}

override func viewDidLoad() {
    super.viewDidLoad()

}

func displayMeme(_ meme: SentMemeImageView) {

    sentMemeView.image = meme.memedImage

}

@IBAction func launchMemeEditorViewController(_ sender: Any) {
    _ = navigationController?.popViewController(animated: true)

}

//unwinding to the view before (the collectionView, or the tableView)

@IBAction func unwindVC(for unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) {
    self.dismiss(animated: true, completion: nil)
}

}

我需要调用memedImage ,但是从结构MemeImage我无法仅调用memedImage所以我仅memedImage了一个结构,但是在没有弹出这些错误的情况下,我无法将其调用到详细信息视图控制器。

struct MemeImage {
    let topText: String
    let bottomText: String
    let originalImage: UIImage
    let memedImage: UIImage
}


struct SentMemeImageView {
    let memedImage: UIImage
}

谢谢。


更新:AppDelegate

import UIKit
import CoreData

    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {

        var window: UIWindow?
        var memes = [MemeImage]()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch.
            return true
   }

prepareForSegue的TableViewController中,您需要告诉它要传递到detailViewController的数据。

var myData: [NSManagedObject] = []

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        let selectedIndexPath:NSIndexPath = self.tableView.indexPathForSelectedRow!
        let vc = segue.destinationViewController as! detailViewController

        vc. meme = myData[selectedIndexPath.row]

}

然后在详细信息viewDetailViewController中。

@IBOutlet weak var memeView: UIImageView!
var meme: NSManagedObject?  // You will use this for the index when pulling the image from how ever you are storing it. 

// The memeImage will need to be set from how ever you are storing the image.
self.memeView.image = UIIamge(named: meme) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM