我正在从代码
设置我的应用程序的根视图控制器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,以便我获得会话到期&在会话到期时我向用户显示警报。因此,当时显示警报并且新的控制器,如果导航,隐藏警报,因为新的控制器是装箱。之后,我尝试显示警报,然后它不起作用
答案 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)
您无法在UIwindow
,UINavigationController
和UItabbarController
上显示任何提醒,因为这些都会显示给root用户。
您需要在任何UIViewcontroller
对象上展示。