在当前动画完成之前开始dismissViewControllerAnimated
Posted
技术标签:
【中文标题】在当前动画完成之前开始dismissViewControllerAnimated【英文标题】:dismissViewControllerAnimated started before present animation is finished 【发布时间】:2014-06-17 09:39:39 【问题描述】:我有一个由 segue 事件呈现的 UIViewController
对象。
该对象处理条码扫描并启动dismissViewControllerAnimated
方法返回到之前的View Controller。
如果条码被立即扫描(在 segue 动画完成和self.isBeingPresented == true
之前),则dismissViewControllerAnimated
无法运行
(Warning: Attempts to dismiss view controller <SearchBarcodeViewController: 0x155d4720> while a presentation or dismiss is in progress!)
如何在调用dismissViewContorllerAnimated
之前延迟dismissViewContorllerAnimated
调用或取消演示动画?
【问题讨论】:
Attempt to dismiss from view controller while a presentation or dismiss is in progress 的可能重复项 @Neeku,在那篇文章中我的问题没有答案。如何延迟dismissViewControllerAnimated或取消演示动画? 您可以延迟设置计时器:developer.apple.com/library/mac/documentation/Cocoa/Reference/… 但是延迟不是解决问题的方法。如果您想拥有正确的代码,则必须以正确的方式进行操作。还有很多其他帖子讨论了同样的问题。 【参考方案1】:您应该只在视图显示后运行条形码扫描代码,以确保它不会在此之前扫描条形码。
假设您的条码扫描代码在viewDidLoad
上运行。你应该把它移到viewDidAppear
【讨论】:
以上是关于在当前动画完成之前开始dismissViewControllerAnimated的主要内容,如果未能解决你的问题,请参考以下文章
pageviewcontroller 动画完成后更新当前页码