uinavigationcontroller – UISplitViewController中对开始结束外观转换的不平衡调用

uinavigationcontroller – UISplitViewController中对开始结束外观转换的不平衡调用,第1张

概述我的UISplitViewController基本上像魅力一样工作,除了在第一次(仅第一次!)从主表视图转换到详细视图时显示恼人的错误消息. Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x160015600>. 主视图和详细视图控制器都嵌入在UINavigationContro 我的UISplitVIEwController基本上像魅力一样工作,除了在第一次(仅第一次!)从主表视图转换到详细视图时显示恼人的错误消息.
Unbalanced calls to begin/end appearance Transitions for <UINavigationController: 0x160015600>.

主视图和详细视图控制器都嵌入在UINavigationController中.但是,只有在设置以下内容时才会出现错误(这是iPhone上逻辑行为所必需的):

class MySplitVIEwController: UISplitVIEwController,UISplitVIEwControllerDelegate {    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        self.delegate = self    }    func splitVIEwController(splitVIEwController: UISplitVIEwController,collapseSecondaryVIEwController secondaryVIEwController: UIVIEwController,ontoprimaryVIEwController primaryVIEwController: UIVIEwController) -> Bool {        return true    }}

如果有人能提供这个问题的解决方案,那将是很好的,在此先感谢.

BTW:拆分视图控制器已在故事板中设置

呈现详细视图控制器是在tableVIEw:dIDSelectRowAtIndexPath:方法中完成的,如下所示:

if let detailVIEwController = delegate as? DetailVIEwController {    detailVIEwController.navigationItem.leftItemsSupplementBackbutton = true    detailVIEwController.navigationItem.leftbarbuttonItem = splitVIEwController!.displayModebuttonItem()    splitVIEwController!.showDetailVIEwController(detailVIEwController.navigationController!,sender: self)}
解决方法 最有可能的是,您在UISplitVIEwController中从master(UItableController中的UItableVIEw?)到详细(UIVIEwController)视图的第一次转换在活动/当前视图完成显示之前启动.

可能的原因是您可能尝试在主UIVIEwController的vIEwDIDLoad()方法中呈现详细视图的第一个“实例”?在这种情况下,您应用可能会尝试在主视图完成显示之前显示详细信息视图.请注意,视图之间的区别确实加载了视图并且确实显示了视图:

overrIDe func vIEwDIDLoad()

Description:

Called after the controller’s vIEw is loaded into memory.

This method is called after the vIEw controller has loaded its vIEw
hIErarchy into memory
.

overrIDe func vIEwDIDAppear(animated: Bool)

Description:

NotifIEs the vIEw controller that its vIEw was added to a vIEw
hIErarchy
. You can overrIDe this method to perform additional tasks
associated with presenting the vIEw.

现在,由于您的问题未显示如何加载初始详细信息视图,因此您可能已经注意到以下建议,但无论如何:如果您的详细视图是从vIEwDIDLoad()呈现的,请尝试将其移至vIEwDIDAppear( ) 方法:

overrIDe func vIEwDIDAppear(animated: Bool) {    super.vIEwDIDAppear(true)    // present/load detail vIEw here instead}
总结

以上是内存溢出为你收集整理的uinavigationcontroller – UISplitViewController中对开始/结束外观转换的不平衡调用全部内容,希望文章能够帮你解决uinavigationcontroller – UISplitViewController中对开始/结束外观转换的不平衡调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103179.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存