2016-07-27 83 views
0

我查了很多例子,試圖合併但不成功。在我的CollectionView(已被放置在ViewController中)中,我想選擇一個單元格並將單元格圖像推送到另一個ViewController。對圖像的引用已放置在plist文件中的字典數組中。我不知道,我該如何編輯我的prepareForSegue或我的func collectionView ... didSelectItemAtIndexPath。此外,隨着您的代碼的任何詳細解釋將會有所幫助,因爲我仍然在快速學習它的語法。如何選擇CollectionView中的細胞圖像,然後繼續查看控制器

下面是我認爲你需要的所有信息,但請讓我知道如果你需要更多:

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 
} 

額外類別:CollectionViewCell類

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

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

額外類別:的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) 
} 
} 
} 

回答

1

你的故事視圖應該有故事ima的公開setter GE。然後您可以使用prepareForSegue方法傳遞數據。如果您仍然有問題,請考慮觀看iTunes U上的斯坦福大學iOS編程講座中的一些視頻,該視頻是免費的,並且此主題已廣泛報道。

+0

感謝您的幫助。我是否必須對我的collectionView didselect函數做任何事情?我一定會檢查SU講座,但是因爲我正在使用plist文件,所以我有點擔心說明書不適合我的需要。 – Ojay

+0

如果沒有自動連接,您可以在那裏觸發segue。現在你有了var Story,你可以從plist中提取故事以準備segue並將它傳遞給目標視圖控制器,這在iTunesU課程中有所介紹。如果您發現我的答案有幫助,請通過綠色標記標記爲已批准:) – Preetygeek

+0

謝謝,我查閱了iTunes課程,它說我需要對象c的先前知識,但我沒有:)會阻止我理解嗎? – Ojay

相關問題