背景
我的应用程序(iOS 9.3.5)基于UISplitViewController。细节VC是一个tableView。当选择一行时,我想显示一个模态VC。
问题
在iPad(不是iPhone)上,第一次选择行时,需要花费太长时间(4秒)才能显示模式。
self.splitViewController?.preferredDisplayMode = .allVisible
)我已将慢度与present(:animated:completion)
和模态viewDidLoad()
之间隔离开来。我假设present(:animated:completion)
正在执行一些需要首次发生的计算或逻辑检查,因为我没有正确或完全配置模态。我试图找到我没有设置或错误设置的内容。
模态VC设置
来自tableView(:didSelectRowAt:)
:
let promptVC = QuantityRequestVC(nibName: "QuantityRequestVC", bundle: nil)
promptVC.inject(ingredient: fetchedResultsController.object(at: indexPath)) // Loads the selected row's information into view
promptVC.delegate = self // Custom protocol to received information from popover
//Also slow for .fullScreen and .currentContext
promptVC.modalPresentationStyle = UIModalPresentationStyle.popover
let tableCell = tableView.cellForRow(at: indexPath)
promptVC.popoverPresentationController?.sourceView = tableCell
promptVC.popoverPresentationController?.sourceRect = (tableCell?.bounds)!
NSLog("About to present modal")
present(promptVC, animated: false, completion: nil)
NSLog("Just Presented")
在QuantityRequestVC的viewDidLoad()
中,我还有一个NSLog作为第一行。
示例输出:
2017-06-12 08:12:16.047 About to present modal
2017-06-12 08:12:20.943 viewDidLoad entered
2017-06-12 08:12:20.944 super.viewDidLoad finished
2017-06-12 08:12:20.979 Just Presented