我正试图UIAlertController在我的iOS应用程序中呈现AppDelegate.以下是警报和本方法.
UIAlertController *alert = [UIAlertController alertControllerWithTitle:cTitle message:cMessage preferredStyle:UIAlertControllerStyleAlert];
//Configure alert and actions
[self.window.rootViewController presentViewController:alert animated:TRUE completion:nil];
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试显示警报时,它不会出现,我在控制台中收到以下警报.
Warning: Attempt to present <UIAlertController: 0x145f5d60> on <UINavigationController: 0x146590f0> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)
导致错误的原因是什么?如何解决?
在我的完成处理程序中,我试图像alertJS 一样返回http响应代码.一旦我得到这个排序,我希望改进我的if语句,以确定最终用户的连接问题.我在看这篇文章.
http://www.ioscreator.com/tutorials/display-an-alert-view-in-ios8-with-swift
我也看到这个回答Simple App Delegate方法来显示一个UIAlertController(在Swift中),但是我得到了一个关于window未被命名的类似方法.
没有所有噪音的代码是这样的:
class NewsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var tableView: UITableView!
var titleItems: NSMutableArray = []
var descritpionItems: NSMutableArray = []
class RemoteAPI {
// base url
let baseUrl = "http://api.dev/web/"
// returned array of news titles + descriptions
var newsTitle: NSMutableArray = []
var newsDescription: NSMutableArray = []
func getData(completionHandler: ((NSArray?, NSError?) -> Void)) -> Void {
// get news feed url
let url = NSURL(string: baseUrl + …Run Code Online (Sandbox Code Playgroud)