gpt4 book ai didi

ios - 无法使 : UICollectionElementKindCell after going back from background 类型的 View 出列

转载 作者:行者123 更新时间:2023-11-28 12:38:20 26 4
gpt4 key购买 nike

我正在 Swift3 中构建一个键盘扩展。

我的键盘第一次启动时,没问题,我的收藏 View 显示得很好,一切正常。

当我的键盘进入后台并在前台再次返回时,会出现此错误。例如,我启动 iMessage,显示我的键盘,点击我 iPhone 的“主页按钮”,再次启动 iMessage -> 崩溃:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier KeyboardViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

以下是我如何为我的单元格标识符设置 Storyboard:

Cell identifier

正确的类:

Cell class

下面是我如何从 cellForItemAt indexPath 方法中调用它:

 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! KeyboardViewCell
return cell

我不明白为什么在更换键盘后会崩溃,就像在那种情况下没有加载 Storyboard之类的......我是不是忘记了什么?

我的 Storyboard是这样的:

enter image description here

enter image description here

最佳答案

您的 KeyboardViewController 包含两个 UICollectionView。确保 MyCollectionView 在将 cellForItemAt indexPath 中的 KeyboardViewCell 出队时调用其 dataSource:

if collectionView === myCollectionView {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! KeyboardViewCell
return cell
} else {
//dequeue soundCollectionViewCell
}

如果您为多个“委托(delegate)者”(即多个 ColletionView)遵循相同的协议(protocol),则必须在每个回调方法中实现此检查。

关于ios - 无法使 : UICollectionElementKindCell after going back from background 类型的 View 出列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com