易于复制:
- 创建一个新应用
将此代码复制到启动时启动的视图控制器
class ViewController: UIViewController { override func viewDidAppear(animated: Bool) { UIView.animateWithDuration(5, delay: 5, options: UIViewAnimationOptions.CurveEaseInOut, animations: { }, completion: { finished in print("finished") } ) } }
当我希望它在启动后 10 秒被记录(5 来自动画持续时间 + 5 来自延迟)时,会立即记录“完成”。
我该如何解决?
我要解决的原始问题是presentViewController
(with animated: false
) before viewDidAppear
,这样我就可以LoginViewController
在后面的控制器视图出现之前向用户显示 a 。但事实证明我无法调用or presentViewController
。viewDidLoad
viewWillAppear
所以我的解决方法是将LoginViewController
' 视图的 alpha 设置为 0 并将其设置为 1 (我知道,这是一个不同的效果,但它比调用presentViewController
导致viewDidAppear
主控制器显示并在一毫秒后(not literally)
有LoginViewController
视图出现)。