我已經把一個uicollectionview放入了一個uitableview。在選擇表視圖單元格內的collectionview單元格後,我遇到了另一個viewcontroller的麻煩。從uicollectionview中查看是在桌面視圖內
// if the user selects a cell, navigate to the viewcontroller
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// we check did cell exists or did we pressed a cell
if let cell = sender as? UICollectionViewCell {
let cell2 = tableView.dequeueReusableCell(withIdentifier: "cell") as! TestingTableView
// define index to later on pass exact guest user related info
let index = cell2.collectionView?.indexPath(for: cell)!.row
print(index as Any)
// if segue is guest...
if segue.identifier == "guest" {
// call guestvc to access guest var
let guestvc = segue.destination as! GuestCommunityViewVC
// assign guest user inf to guest var
guestvc.guest = communities[index!] as! NSDictionary
}
}
}
}
我在該行收到一個錯誤:
let index = cell2.collectionView?.indexPath(for: cell)!.row
,因爲跟它的價值爲零。有沒有人知道一個更好的方法來做到這一點?
在上面的錯誤提示行中,您將出現一個單元格並將其轉換爲TestingTableView對象。你的意思是把這個當作一個TableViewCell嗎? – bjd23
@ bjd23我的集合視圖插座是在表視圖單元類中聲明的,因爲它嵌套在表視圖中。這是我可以訪問collectionview的索引路徑的唯一方法。但是,如果它返回nil,我認爲它甚至不會獲得collectionview的indexpath。我一直在爲此奮鬥一段時間。有什麼建議麼? – ILoveToCode22
爲什麼不使用委託,所以當按下UICollectionViewCell時,它會將此內容發送給UITableView所在的ViewController? – Jay