我正在为iOS开发一个没有用户界面的应用程序扩展。由于其功能,我不需要任何用户界面,因为所有任务都在后台完成。
需要UI的唯一方案是在设备中缺少某些配置时提醒用户。我可以从此类扩展程序中显示UIAlertController
,还是必须将扩展程序配置为使用用户界面?
答案 0 :(得分:0)
当我使用需要" popUp"类似效果的内容但由于某种原因无法使用UIAlertController时,我会使用this SDK
非常好,文档很完整。
答案 1 :(得分:-1)
要在任何类中显示警报,而不是在UIViewController中,您必须从app delegate获取顶级viewcontroller并将其用于警报。
最好的方法是使用AppDelegate。请尝试使用它。
func showAlert(message:String) {
let alert = UIAlertController(title: "Notification", message: message, preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil))
let topViewController = self.topViewController((self.window?.rootViewController)!)
topViewController.presentViewController(alert, animated: true, completion: nil)
}
func topViewController(rootViewController:UIViewController) -> UIViewController {
if let presentedViewController = rootViewController.presentedViewController {
if presentedViewController.isMemberOfClass(UINavigationController) {
let navigationController = presentedViewController as! UINavigationController
return self.topViewController(navigationController.viewControllers.last!)
}else{
return self.topViewController(presentedViewController)
}
}else{
return rootViewController
}
}