2016-07-27 32 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

相关问题