- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从自定义 tableViewCell
(符合 UICollectionViewDelegate,
UICollectionDatasource
)类实例化一个 ViewController
有一个自定义的 CollectionView 嵌入其中。选择 CollectionView 的特定部分时需要执行 segue。已经尝试使用协议(protocol)不起作用!
my custom TableView class :-
import UIKit
protocol transferDelegate{
func transfer(_: Int)
}
class ParentTableViewCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource{
@IBOutlet weak var parentCellHeader: UIView!
@IBOutlet weak var feedPostUsername: UILabel!
@IBOutlet weak var feedPostUserDetails: UILabel!
@IBOutlet weak var feedPostDescription: UILabel!
@IBOutlet weak var feedPicturesCollectionView: UICollectionView!
@IBOutlet weak var feedUserProfilePictures: CustomProfilepicture!
var transferingDelegate : transferDelegate?
override func awakeFromNib() {
super.awakeFromNib()
feedPicturesCollectionView.dataSource = self
feedPicturesCollectionView.delegate = self
feedPicturesCollectionView.pagingEnabled = true
feedPicturesCollectionView.backgroundColor = UIColor.clearColor()
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) ->
UICollectionViewCell {
let cell = feedPicturesCollectionView.dequeueReusableCellWithReuseIdentifier("FeedPicturesCell", forIndexPath: indexPath) as! FeedPhotosCell
switch(indexPath.row){
case 0 : cell.feedImages.image = UIImage(named: "defaultProfilePic")
case 1 : cell.feedImages.image = UIImage(named: "image1")
case 2 : cell.feedImages.image = UIImage(named: "image2")
case 3 : cell.feedImages.image = UIImage(named: "image3")
default : cell.feedImages.image = UIImage(named: "defaultProfilePic")
}
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print(indexPath.row)
transferingDelegate?.transfer(indexPath.row)
}
}
我的 viewController 类:-
import UIKit
class ViewController: UIViewController , UITableViewDelegate, UITableViewDataSource,transferDelegate{
var xibName : String = "HomepageFeedCellHeader"
var lords : [String] = ["name1","name2","name3"]
var que : [String] = ["--","red","blue"]
var desc : [String] = ["abcE","defn","ghi"]
var menProfilePictures : [UIImage] = [UIImage(named: "image1")!,UIImage(named: "image2")!,UIImage(named: "image3")!]
@IBOutlet weak var parentTableView: UITableView!
var a : ParentTableViewCell = ParentTableViewCell()
override func viewDidLoad() {
super.viewDidLoad()
parentTableView.delegate = self
parentTableView.dataSource = self
// Do any additional setup after loading the view, typically from a nib.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return lords.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = parentTableView.dequeueReusableCellWithIdentifier("ParentCell", forIndexPath: indexPath) as! ParentTableViewCell
a.transferingDelegate = self
cell.feedPostUsername.text = lords[indexPath.row]
cell.feedPostUserDetails.text = queens[indexPath.row]
cell.feedPostDescription.text = desc[indexPath.row]
cell.feedUserProfilePictures.image = menProfilePictures[indexPath.row]
return cell
}
func transfer(itemNo : Int) {
print("call recieved in viewController from item \(itemNo)")
}
}
最佳答案
您的didSelectItemAtIndexPath
问题已解决。这是您在评论中提到的第二个问题的答案。如果图像不在 navigation
层次结构中,则不能将图像分配给 imageView
。你的问题是你 detailImage
是 nil 因为这个 ViewController
没有加载到窗口层次结构中。要解决您的问题,请这样做
imagePopOverScene?.selImage = menProfilePictures[itemNo]
现在像这样在你的 imagePopOverScene
中声明 selImage
var selImage: UIImage!
同时在 imagePopOverSceneVC
的 viewDidLoad
中添加以下行
self.detailImage.image = self.selImage
这将解决你的问题
关于ios - 如何从自定义 CollectionViewController 的 didSelectItemAtIndexPath 实例化 ViewController,它是 tableViewCell 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271077/
我在 Collection View 单元格中有一个 UILabel,当我选择它时我希望标签的背景改变颜色,但是当我单击一个单元格时没有任何反应?这是为什么?我该如何解决?控制台中没有打印任何内容。
我正在尝试完成一些非常简单的事情。当我的 Collection View 中的唯一项目被推送时,我试图以编程方式推送到 viewController。什么都没发生。我相信在我纠结的一团糟中有不止一个问
我有一个 Collection View ,其中有带有图像和标签的自定义单元格。我已将我的收藏 View 设置如下 - UICollectionViewFlowLayout *flowLayout =
所以我已经为此苦苦挣扎了一段时间。我有一个 UICollectionView 用作菜单。单元格是切换到另一页面的选项。菜单的功能完全按照其应有的方式运行,只是当您按下某个单元格(例如单元格 0)时,它
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
我是 Swift 的新手,也是编码的新手,所以如果我的问题含糊不清,或者答案很明显,请原谅我。 我有一个 collectionView 和里面的一些单元格。当我选择一个单元格时,我想更改除所选单元格之
我正在创建一个 UICollectionView 并且在选择单元格时遇到问题,我认为函数 didSelectItemAtIndexPath 没有被调用。 我的部分代码是: viewDidLoad [s
我正在使用添加到 View 顶部的 UICollectionView,并带有单击手势识别器。 CollectionView 使用没有任何 subview 的自定义单元格。委托(delegate)的方法
所以我创建了一个应用程序,用户可以在其中创建自定义锻炼。您进入第一个 View 添加 x 轮数,然后单击表格 View 中添加轮次的按钮。该单击将打开另一个带有 Collection View 的事件
我有带有自定义单元格(xib 文件)的 UICollectionView,我设法显示 CollectionView,但当我点击具有以下功能的单元格时我无法检测到: func collectionVie
这是交易: 我有一个 UICollectionView,它从一个对象数组中填充自身。我希望能够在我的 UICollection View 中点击表示对象的 View 之一,然后转到一个新 View ,
在我的场景中,我在 Storyboard 中使用 UICollectionView。 didSelectItemAtIndexPath 不起作用。我在 UICollectionView 上添加了 Im
我有包含 30 个项目的 Collection View ,并且想在媒体上执行一些操作。我是这样做的: func collectionView(collectionView: UICollection
我正在尝试调用突出显示我拥有的 UICollectionViewCells 的方法。一切正常,但是当 UIView 首次加载时,我正尝试像这样选择 Collection View 中的第一项 [pho
我有 UIView A。 UIView A 加载了 UICollectionView。没事儿。在这种情况下,每当我触摸 UICollectionView 的单元格 时,都会调用 didSelectIt
经过几天的发疯,我无法找到解决问题的方法。问题是:在 UICollectionView 中选择一个单元格后,未调用方法 didSelectItemAtIndexPath。 我的观点结构是: 此 Vie
我有一个带有单个自定义单元格的简单 UICollectionView。一切都按预期工作,但点击集合中的任何项目似乎都不会调用 didSelectItemAtIndexPath 事件,除非: 一个。用
我在 ViewController 中有 UICollection View ,它根本不响应 didSelectItemAtIndexPath。 // super class class ViewCo
我有三个 Controller 。在第一个 CategoryCollectionViewController 中,接下来是 listTableViewController,最后是 Descriptio
我想使用 didSelectItemAtIndexPath 但它不起作用。 collection_contactus.allowsSelection = true collection
我是一名优秀的程序员,十分优秀!