2016-07-27 37 views
0

Ich habe viele Beispiele nachgeschlagen und versucht zu integrieren, aber waren nicht erfolgreich. In meiner CollectionView (die in einem ViewController platziert wurde) möchte ich eine Zelle auswählen und das Zellbild auf einen anderen ViewController schieben. Die Verweise auf Bilder wurden in einem Array von Wörterbüchern innerhalb einer PLIST-Datei platziert. Ich bin nicht sicher, wie ich meine prepareForSegue oder meine func collectionView ... didSelectItemAtIndexPath bearbeiten sollte. Auch jede detaillierte Erklärung, die mit Ihrem Code einhergeht, wird hilfreich sein, da ich immer noch schnell und seine Syntax lerne.So wählen Sie Zellbild in CollectionView dann über ViewController

Unten ist das, was ich denke, dass alle Informationen, die Sie benötigen, aber lassen Sie es mich wissen, wenn Sie mehr benötigen:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
if (segue.identifier == "ShowToStory") { 
    var story = sender as! UICollectionViewCell, indexPath = collectionView.indexPathForCell(story) 

} 
} 

private func initStoryImages() { 

var storyArchives = [StoryImages]() 
let inputFile = NSBundle.mainBundle().pathForResource("StoryArchive", ofType: "plist") 

let inputDataArray = NSArray(contentsOfFile: inputFile!) 

for inputItem in inputDataArray as! [Dictionary<String, String>] { 

    let storyImage = StoryImages(dataDictionary: inputItem) 
    storyArchives.append(storyImage)  
} 
    storyImages = storyArchives 
} 

ZUSÄTZLICHE KLASSE: CollectionViewCell Klasse

class CollectionViewCell: UICollectionViewCell { 
@IBOutlet weak var cellImage: UIImageView! 

func setStoryImage(item:StoryImages){ 
cellImage.image = UIImage(named:item.itemImage) 
} 
} 

ZUSÄTZLICHE KLASSE: UIViewController (Edit_1)

class StoryView: UIViewController{ 
@IBOutlet weak var ImageToStory: UIImageView! 

var story: Story? 

override func viewWillAppear(animated: Bool) { 
if let story = story { 
ImageToStory.image = UIImage(named: story.imageName) 
} 
} 
} 

Antwort

1

Ihre Geschichte Ansicht sollte öffentliche Setter für Story Ima haben ge. Dann können Sie die Methode prepareForSegue verwenden, um Daten zu übergeben. Wenn Sie immer noch Probleme haben, betrachten Sie einige Videos aus der Vorlesung der Stanford University iOS Programmierung auf iTunes U, es ist kostenlos und dieses Thema ist dort weit abgedeckt.

+0

Danke für Ihre Hilfe. Muss ich etwas mit meiner CollectionView Didselect-Funktion machen? Ich werde auf jeden Fall die SU-Vorlesungen besuchen, aber da ich eine PLIST-Datei verwende, bin ich ein bisschen besorgt, dass die Anweisungen nicht meinen Bedürfnissen entsprechen. – Ojay

+0

Sie können dort einen Strang auslösen, wenn er nicht automatisch verbunden ist. Jetzt haben Sie var Story, Sie können Story aus plist extrahieren, um sich auf den Übergang vorzubereiten und es einfach an den Ziel-View-Controller zu übergeben, dies wird in iTunesU natürlich behandelt. Wenn Sie meine Antwort hilfreich gefunden haben, markieren Sie sie mit einem grünen Häkchen als genehmigt :) – Preetygeek

+0

Danke, ich habe den iTunes-Kurs nachgeschlagen und er sagt, dass ich vorheriges Wissen über Objekt c benötige, welches ich nicht habe :) wird mich das daran hindern zu verstehen? – Ojay