2017-02-17 2 views
0

Я собираюсь из коллекции или tableView, и один из них я выбираю, он не появится в контроллере детали.Не удается передать изображение из выбранного изображения в таблицеView или collectionView в detailView

Эти ошибки я получаю:

Вот код в 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, поэтому я создал другую структуру только с этим, однако я не могу назвать его контроллером подробных представлений без появления этой ошибки.

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


struct SentMemeImageView { 
    let memedImage: UIImage 
} 

Спасибо.


Update: 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 
    } 
+0

Что такое подготовка для ссылки segue look в виде таблицы, которая передает данные в подробный вид? – MwcsMac

+0

У меня его нет. Я не ставил один, потому что не думал, что мне нужен один для презентации в раскадровке вместо кода. –

+0

Как вы добавляете данные в meme Array? – MwcsMac

ответ

0

В вашем TableViewController в prepareForSegue вы должны сказать ему, что данные для передачи в 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] 

} 

Затем в подробном представленииDetailViewController.

@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) 
+0

Когда я вставлял их и добавлял в свои имена переменных, это вызывало больше ошибок. –

+0

Сохраняете ли вы данные в CoreData? Вы извлекаете его из какой-либо веб-базы данных? Я могу помочь, если вы добавите раздел «Обновление» в свой вопрос, показывающий, что ваш код из таблицыViewController имеет то, как вы получаете данные для таблицы TableView. Также, когда вы говорите, что получаете ошибки, где вы их получаете? – MwcsMac

+0

Хм, я храню его в AppDelegate (мне сказали это сделать). Я добавлю разделы обновления. –

Смежные вопросы