ios – 在消息贴纸应用程序中工作时,获得“开始/结束外观转换的不平衡调用…”

前端之家收集整理的这篇文章主要介绍了ios – 在消息贴纸应用程序中工作时,获得“开始/结束外观转换的不平衡调用…”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自定义贴纸消息应用程序,我一直在努力.我正在将贴纸浏览器加载到以编程方式生成的视图中.贴纸是APNG,不是序列,而是动画png(单个文件).一切似乎都有效,但出于某种原因,当我开始将其中一个拖到消息中时,我会收到此错误

Unbalanced calls to begin/end appearance transitions for <CKPresentationControllerRootViewController: 0x110a34c20>.

我已经读过,当在它的父级之前调用VC时会出现不平衡调用问题,所以我将视图的生成(createBrowser)移动到了willBecomeActive中

示例代码

func createBrowser() {
    let controller = MSStickerBrowserViewController(stickerSize: .small)
    addChildViewController(controller)
    // This calls a custom constraints function that sets the VC constraints
    view.addSubviewStretched(subview: controller.view)
    controller.stickerBrowserView.backgroundColor = UIColor(patternImage: UIImage(named: "background.png")!)
    controller.stickerBrowserView.dataSource = self
}


// Get total number of stickers
func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
    return stickers.count
}

func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView,stickerAt index: Int) -> MSSticker {
    return stickers[index]
}

无论我在何处创建视图,无论是在willTransition还是viewDidLoad中,错误都是随机发生的.如果有任何帮助的话,我正在通过usb将应用程序推送到我的iphone 7.

解决方法

在你的createBrowser函数中,你调用addChildViewController,但你忽略了调用

controller.willMove(toParentViewController:self)

在对viewcontroller包含层次结构执行更改并使UIKit正确调用viewcontroller转换时,这是必需的

(假设它在UIViewController子类中被调用)

猜你在找的iOS相关文章