如何 select CollectionView 中的单元格图像然后转至 ViewController
How to select cell image in CollectionView then segue to ViewController
我查阅了很多例子并尝试合并但没有成功。在我的 CollectionView(已放置在 ViewController 中)中,我想 select 一个单元格并将单元格图像推送到另一个 ViewController。对图像的引用已放置在 plist 文件中的字典数组中。我不确定,我应该如何编辑我的 prepareForSegue 或我的 func collectionView...didSelectItemAtIndexPath。此外,任何与您的代码一起使用的详细解释都会有所帮助,因为我仍在学习 swift 及其语法。
以下是我认为您需要的所有信息,但如果您需要更多信息,请告诉我:
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
}
其他 CLASS:CollectionViewCell class
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var cellImage: UIImageView!
func setStoryImage(item:StoryImages){
cellImage.image = UIImage(named:item.itemImage)
}
}
其他 CLASS: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)
}
}
}
您的故事视图应该有 public setter 的故事图片。然后你可以使用 prepareForSegue
方法来传递数据。如果您仍然有问题,请考虑在 iTunes U 上观看斯坦福大学 iOS 编程讲座的一些视频,它是免费的,并且该主题在那里被广泛讨论。
我查阅了很多例子并尝试合并但没有成功。在我的 CollectionView(已放置在 ViewController 中)中,我想 select 一个单元格并将单元格图像推送到另一个 ViewController。对图像的引用已放置在 plist 文件中的字典数组中。我不确定,我应该如何编辑我的 prepareForSegue 或我的 func collectionView...didSelectItemAtIndexPath。此外,任何与您的代码一起使用的详细解释都会有所帮助,因为我仍在学习 swift 及其语法。
以下是我认为您需要的所有信息,但如果您需要更多信息,请告诉我:
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
}
其他 CLASS:CollectionViewCell class
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var cellImage: UIImageView!
func setStoryImage(item:StoryImages){
cellImage.image = UIImage(named:item.itemImage)
}
}
其他 CLASS: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)
}
}
}
您的故事视图应该有 public setter 的故事图片。然后你可以使用 prepareForSegue
方法来传递数据。如果您仍然有问题,请考虑在 iTunes U 上观看斯坦福大学 iOS 编程讲座的一些视频,它是免费的,并且该主题在那里被广泛讨论。