我遇到了一个问题,即在尝试呈现ViewController
. UITableViewCell
当用户单击需要高级访问权限的时,我试图显示升级警报。在ViewController
介绍中,我放置了调试代码:
override func viewDidLoad() {
super.viewDidLoad()
println("\(NSDate()) viewDidLoad")
// Set Navigation Title font and color
self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "UbuntuCondensed-Regular", size: 22)!,
NSForegroundColorAttributeName: UIColor.whiteColor()]
println("\(NSDate()) end of viewDidLoad")
}
override func viewWillAppear(animated: Bool) {
println("\(NSDate()) before super.viewWillAppear(animated)")
super.viewWillAppear(animated)
println("\(NSDate()) after super.viewWillAppear(animated)")
}
override func viewDidAppear(animated: Bool) {
println("\(NSDate()) before super.viewDidAppear(animated)")
super.viewDidAppear(animated)
println("\(NSDate()) after super.viewDidAppear(animated)")
}
该println
声明导致:
2015-06-23 16:36:54 +0000 viewDidLoad
2015-06-23 16:36:54 +0000 end of viewDidLoad
2015-06-23 16:36:57 +0000 before super.viewWillAppear(animated)
2015-06-23 16:36:57 +0000 after super.viewWillAppear(animated)
2015-06-23 16:36:58 +0000 before super.viewDidAppear(animated)
2015-06-23 16:36:58 +0000 after super.viewDidAppear(animated)
如您所见,在结束viewDidLoad
和开始之间有 3 秒的延迟viewWillAppear
。我无法弄清楚为什么会发生这种情况。我在 中以编程方式创建视图ViewController
,因此这里没有使用情节提要。
这是我必须展示的代码ViewController
:
// Create the upgrade view contorller
let upgradeVC = UpgradeViewController()
// Set the presentation context
self.providesPresentationContextTransitionStyle = true
self.definesPresentationContext = true
// Set the upgrade controller to be modal over current context
upgradeVC.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
// Show the view controller
self.navigationController?.presentViewController(upgradeVC, animated: true, completion: nil)