在窗口显示警报时发出问题?

时间:2018-03-27 06:29:43

标签: ios swift xcode

我正在从代码

设置我的应用程序的根视图控制器
let navController = UINavigationController()
    //App Theming
    navController.navigationBar.barTintColor = Constant.AppColor.navigationColor
    navController.navigationBar.tintColor = Constant.AppColor.navigationBarTintColor
    navController.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: Constant.AppColor.navigationColorTextColor]
    navController.pushViewController(viewContoller, animated: true)
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window?.rootViewController = navController
    appDelegate.window?.makeKeyAndVisible()

现在我将一个控制器设置为root。然后我从代码下面的窗口显示警告。

    let window = UIApplication.shared.keyWindow!
     window.addSubView(mainView)

但是警报没有显示出来。请告诉我这是什么问题?我无法理解。

修改 在应用程序启动时,我在应用程序后台线程中调用api,以便我获得会话到期&在会话到期时我向用户显示警报。因此,当时显示警报并且新的控制器,如果导航,隐藏警报,因为新的控制器是装箱。之后,我尝试显示警报,然后它不起作用

3 个答案:

答案 0 :(得分:0)

请勿使用window.addSubView(mainView)来显示提醒。

使用管理mainView的viewController并从rootViewController中显示它。

请参阅https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/PresentingaViewController.html了解如何呈现viewController

答案 1 :(得分:0)

首先添加这样的根viewcontroller然后在视图控制器的viewdidappear添加警报代码

let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
let object  = storyboard.instantiateViewController(withIdentifier:"yourViewController") as! yourViewController            
let addNavi = UINavigationController(rootViewController: object)            

self.window?.rootViewController = addNavi self.window?.makeKeyAndVisible()

答案 2 :(得分:0)

您无法在UIwindowUINavigationControllerUItabbarController上显示任何提醒,因为这些都会显示给root用户。

您需要在任何UIViewcontroller对象上展示。