Я пытаюсь показать мой сеанс vc после того, как я получу значения (я использую центр уведомлений) из моего не UIViewController класса (мой интерфейсный интерфейс, который является из моего класса какао) в мой сеанс vc.
Сейчасв первый раз мой сеанс vc правильно отображается на моем текущем верхнем vc.Но после второго раза я получаю только белый экран.Но значения api-вызовов, которые есть в моем сеансе vc, все еще работают. Я могу видеть в своей консоли.
TopView.swift:
import UIKit
public extension UIWindow {
public var visibleViewController: UIViewController? {
return UIWindow.getVisibleViewControllerFrom(vc: self.rootViewController)
}
public static func getVisibleViewControllerFrom(vc: UIViewController?) -> UIViewController? {
if let nc = vc as? UINavigationController {
return UIWindow.getVisibleViewControllerFrom(vc: nc.visibleViewController)
} else if let tc = vc as? UITabBarController {
return UIWindow.getVisibleViewControllerFrom(vc: tc.selectedViewController)
} else {
if let pvc = vc?.presentedViewController {
return UIWindow.getVisibleViewControllerFrom(vc: pvc)
} else {
return vc
}
}
}
}
func getTopViewController() -> UIViewController? {
let appDelegate = UIApplication.shared.delegate
if let window = appDelegate!.window {
return window?.visibleViewController
}
return nil
}
Myделегат приложения:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.onOver(notification:)), name: NSNotification.Name(rawValue: "openBoard"), object: nil);
}
@objc func onGameOver(notification: NSNotification)
{
if let score = notification.object as? NSDictionary
{
let storyBoard = UIStoryboard.init(name: "Trai", bundle: nil);
if let sessionvc = storyBoard.instantiateViewController(withIdentifier:
"sessionvc") as? sessionvc{
if let topVC = getTopViewController() {
//topVC.dismiss(animated: true, completion: nil)
topVC.present(sessionvc, animated: true)
}
}
}
}
Впервые я не получаю его.Но со второго раза, если я пытаюсь сделать то же самое, я получаю белый экран, но все же мои данные sessionvc и все загружается в моей консоли.Любая помощь в этом