【发布时间】:2016-12-03 14:57:35
【问题描述】:
当我尝试关闭以编程方式呈现在嵌套在 NavigationController 中的 ViewController 中的 ViewController 时,我似乎得到了一个
libc++abi.dylib:以 NSException 类型的未捕获异常终止
每隔一段时间,不提供更多信息。
我的 ViewController 以模态方式呈现在嵌套的 ViewController 之上:
class RefreshController: UIViewController {
@IBOutlet var label: UILabel!
@IBOutlet var main: UIView!
@IBOutlet var spinner: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
spinner.startAnimating()
label.text = .localized("refreshing") + " ..."
main.layer.cornerRadius = 5
}
public func hideRefresh(_ contr: UIViewController, completion: @escaping (() -> Swift.Void)){
contr.presentedViewController?.dismiss(animated: true, completion: {
refreshController = nil
completion()
})
}
class func showRefresh(_ contr: UIViewController!, completion: @escaping (() -> Swift.Void)){
refreshController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "refreshController") as! RefreshController
contr.present(refreshController, animated: true, completion: {
completion()
})
}
}
我有一个全局变量 refreshController,当它显示为每次都可以访问它时,它将自己定义为当前呈现的控制器。
在我调用的嵌套 ViewController 中:
refreshController.hideRefresh(self, completion: {
//code goes here, after the controller dismissed
}
(完成部分是由于动画,有时会与应该呈现的 UIAlerts 冲突)
有人有这方面的经验吗?还是只是最新 iOS 10.2 (14C82) beta 中的一个 bug?
【问题讨论】:
标签: ios swift swift3 xcode8 ios10