好的,我在我的ios应用程序中为操作添加please wait
弹出窗口的时间比平时要长。
我有一个从我的ViewController到TabController的segue,当我像这样调用它时:
self.performSegueWithIdentifier("openMainApp", sender: self)
一切正常。
但当我用它包围时:
let alert = UIAlertController(title: nil, message: "Please wait...", preferredStyle: .Alert)
alert.view.tintColor = UIColor.blackColor()
let loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(10, 5, 50, 50)) as UIActivityIndicatorView
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
loadingIndicator.startAnimating();
alert.view.addSubview(loadingIndicator)
presentViewController(alert, animated: true, completion: nil)
self.performSegueWithIdentifier("openMainApp", sender: self)
dismissViewControllerAnimated(false, completion: nil)
然后我收到警告:
Warning: Attempt to present <app.TabController: 0x7ff6dc00bd40>
on <app.ViewController: 0x7ff6d9cf6600> which is already presenting
<UIAlertController: 0x7ff6d9d78530>
如何跳过此警告?
答案 0 :(得分:0)
虽然这个警告的来源对我来说仍然是一个谜,但有一种方法可以跳过警告。
答案 1 :(得分:0)
Idan的回答可能有效,但我建议您使用MBProgressHud或SVProgressHud之类的内容。当您在解除警报控制器之前执行segue时,看起来swift并不喜欢它,因为它是它自己的视图控制器。 Here是如何实现MBProgressHud的。 Here是如何实现SVProgressHud的。如果您不想使用CocoaPods,只需下载zip文件并将.m和.h文件添加到项目中。