我们可以从应用程序扩展中显示UIAlertController而没有像“Action Extension”这样的用户界面吗?

时间:2016-01-26 15:46:40

标签: ios

我正在为iOS开发一个没有用户界面的应用程序扩展。由于其功能,我不需要任何用户界面,因为所有任务都在后台完成。

需要UI的唯一方案是在设备中缺少某些配置时提醒用户。我可以从此类扩展程序中显示UIAlertController,还是必须将扩展程序配置为使用用户界面?

2 个答案:

答案 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
    }
}