Ios 动画+;从后台线程错误调用UIView SetAnimationEnabled

Ios 动画+;从后台线程错误调用UIView SetAnimationEnabled,ios,swift,view,uiviewcontroller,uinavigationcontroller,Ios,Swift,View,Uiviewcontroller,Uinavigationcontroller,我在应用程序中显示初始视图控制器,直到登录完成。登录成功后,我将尝试在AppDelegate类中使用以下代码显示我的主ViewController。它仅正确显示视图控制器,但显示错误。我可能在代码中犯了一些错误 我希望只有在我在AppDelegate中所做的所有工作完成后,才能调用我的主ViewController ViewWillAspect() AppDelegate类 class AppDelegate: UIResponder, UIApplicationDelegate {

我在应用程序中显示初始视图控制器,直到登录完成。登录成功后,我将尝试在AppDelegate类中使用以下代码显示我的主ViewController。它仅正确显示视图控制器,但显示错误。我可能在代码中犯了一些错误

我希望只有在我在AppDelegate中所做的所有工作完成后,才能调用我的主ViewController ViewWillAspect()

AppDelegate类

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        print("Inside App Delegate")

        self.window = UIWindow(frame: UIScreen.main.bounds)
        self.initializeAppViewState()

        LoginManager.shared.login() { (success) -> Void in
            if success {
                print("Login Successful")
                self.setupRootViewController()
            } else {
                print("Login Un-Successful")
            }
        }
        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
    }

    func applicationWillTerminate(_ application: UIApplication) {
    }

    func initializeAppViewState() {
        if (!Thread.isMainThread) {
            DispatchQueue.main.async {
                self.initializeAppViewState()
            }
            return
        }

        self.window!.rootViewController = InitialViewController(nibName: "InitialViewController", bundle: Bundle.main)
        self.window!.makeKeyAndVisible()
    }

    func setupRootViewController() {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier :"NavigationController") as! UINavigationController

        if let window = self.window, let rootViewController = window.rootViewController {
            var currentController = rootViewController
            while let presentedController = currentController.presentedViewController {
                currentController = presentedController
            }
            currentController.present(viewController, animated: true, completion: nil)
        }
    }
}
下面是我得到的错误

Login Successful 2019-10-03 20:49:00.707020+0530 IoT Simulator[47491:1653133] [Animation] +[UIView setAnimationsEnabled:] being called from a background thread. Performing any operation from a background thread on UIView or a subclass is not supported and may result in unexpected and insidious behavior. trace=( 0 UIKitCore 0x0000000111b7bdda kFixedAnimationDuration_block_invoke_5 + 107 1 libdispatch.dylib 0x000000011016cdb5 _dispatch_client_callout + 8 2 libdispatch.dylib 0x000000011016e83c _dispatch_once_callout + 66 3 UIKitCore 0x0000000111b7bd6d +[UIView(Animation) setAnimationsEnabled:] + 76 4 UIKitCore 0x0000000111b7bebb +[UIView(Animation) performWithoutAnimation:] + 84 5 UIKitCore 0x0000000110e06d46 -[UIVisualEffectView _updateSubviews] + 325 6 UIKitCore 0x0000000110e07b56 -[UIVisualEffectView _configureAllEffects] + 1435 7 UIKitCore 0x0000000110e05fe5 -[UIVisualEffectView setBackgroundEffects:] + 396 8 UIKitCore 0x0000000110e100ee -[_UIBarBackground updateBackground] + 229 9 UIKitCore 0x0000000110e1039d -[_UIBarBackground transitionBackgroundViews] + 208 10 UIKitCore 0x0000000110e99bde -[_UINavigationBarVisualProviderModernIOS _updateBackgrounds] + 850 11 UIKitCore 0x0000000110e99e20 -[_UINavigationBarVisualProviderModernIOS layoutSubviews] + 272 12 UIKitCore 0x0000000110e4ee4c -[UINavigationBar layoutSubviews] + 256 13 UIKitCore 0x0000000111b89e69 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1417 14 UIKitCore 0x0000000110e4eba4 -[UINavigationBar layoutSublayersOfLayer:] + 248 15 QuartzCore 0x000000011310cd22 -[CALayer layoutSublayers] + 173 16 QuartzCore 0x00000001131119fc _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 396 17 UIKitCore 0x0000000111b74e2d -[UIView(Hierarchy) layoutBelowIfNeeded] + 646 18 UIKitCore 0x0000000110ffa271 -[UINavigationController _positionNavigationBarHidden:edge:initialOffset:] + 800 19 UIKitCore 0x0000000110ffa4f0 -[UINavigationController _positionNavigationBarHidden:edge:] + 388 20 UIKitCore 0x000000011100149d -[UINavigationController loadView] + 239 21 UIKitCore 0x00000001110a7d04 -[UIViewController loadViewIfRequired] + 172 22 UIKitCore 0x00000001110a8524 -[UIViewController view] + 27 23 UIKitCore 0x0000000110fcf5b4 -[_UIFullscreenPresentationController _setPresentedViewController:] + 89 24 UIKitCore 0x0000000110fc36aa -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 133 25 UIKitCore 0x00000001110bb18a -[UIViewController _presentViewController:withAnimationController:completion:] + 3700 26 UIKitCore 0x00000001110bddd7 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 98 27 UIKitCore 0x00000001110be2ef -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 511 28 UIKitCore 0x00000001110bdd3e -[UIViewController _presentViewController:animated:completion:] + 172 29 UIKitCore 0x00000001110bdf9c -[UIViewController presentViewController:animated:completion:] + 150 30 IoT Simulator 0x000000010b9568a1 $s13IoT_Simulator11AppDelegateC23setupRootViewControlleryyF + 913 31 IoT Simulator 0x000000010b9514dc $s13IoT_Simulator11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0k6LaunchJ3KeyaypGSgtFySbcfU_ + 284 32 IoT Simulator 0x000000010b9516e3 $s13IoT_Simulator11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0k6LaunchJ3KeyaypGSgtFySbcfU_TA + 19 33 IoT Simulator 0x000000010b958eb8 $s13IoT_Simulator12LoginManagerC5login5retry10completionySb_ySbctFySbcfU_ + 296 34 IoT Simulator 0x000000010b958f47 $s13IoT_Simulator12LoginManagerC5login5retry10completionySb_ySbctFySbcfU_TA + 23 35 IoT Simulator 0x000000010b95a8e9 $s13IoT_Simulator12LoginManagerC20acquireTokenSilently10completionyySbc_tFySo22ADAuthenticationResultCcfU_ + 3129 36 IoT Simulator 0x000000010b95a955 $s13IoT_Simulator12LoginManagerC20acquireTokenSilently10completionyySbc_tFySo22ADAuthenticationResultCcfU_TA + 21 37 IoT Simulator 0x000000010b95ae92 $sSo22ADAuthenticationResultCIegg_ABIeyBy_TR + 66 38 ADAL 0x000000010bc9953a __70-[ADAuthenticationRequest(AcquireToken) acquireToken:completionBlock:]_block_invoke + 3050 39 ADAL 0x000000010bc9a131 __63-[ADAuthenticationRequest(AcquireToken) validatedAcquireToken:]_block_invoke + 113 40 ADAL 0x000000010bc9a58f __56-[ADAuthenticationRequest(AcquireToken) getAccessToken:]_block_invoke + 271 41 ADAL 0x000000010bc818cf __40-[ADAcquireTokenSilentHandler getToken:]_block_invoke + 799 42 ADAL 0x000000010bc84a64 -[ADAcquireTokenSilentHandler getAccessToken:] + 2660 43 ADAL 0x000000010bc81572 -[ADAcquireTokenSilentHandler getToken:] + 178 44 ADAL 0x000000010bc9a424 -[ADAuthenticationRequest(AcquireToken) getAccessToken:] + 484 45 ADAL 0x000000010bc9a03b -[ADAuthenticationRequest(AcquireToken) validatedAcquireToken:] + 331 46 ADAL 0x000000010bc99964 __70-[ADAuthenticationRequest(AcquireToken) acquireToken:completionBlock:]_block_invoke.162 + 644 47 ADAL 0x000000010bca98ab __74-[ADAuthorityValidation checkAuthority:validateAuthority:completionBlock:]_block_invoke + 299 48 ADAL 0x000000010bcaa185 __76-[ADAuthorityValidation validateAADAuthority:requestParams:completionBlock:]_block_invoke_2 + 53 49 libdispatch.dylib 0x000000011016bd7f _dispatch_call_block_and_release + 12 50 libdispatch.dylib 0x000000011016cdb5 _dispatch_client_callout + 8 51 libdispatch.dylib 0x000000011016f7b9 _dispatch_queue_override_invoke + 1022 52 libdispatch.dylib 0x000000011017d632 _dispatch_root_queue_drain + 351 53 libdispatch.dylib 0x000000011017dfca _dispatch_worker_thread2 + 130 54 libsystem_pthread.dylib 0x00000001105556b3 _pthread_wqthread + 583 55 libsystem_pthread.dylib 0x00000001105553fd start_wqthread + 13 ) 登录成功 2019-10-03 20:49:00.707020+0530物联网模拟器[47491:1653133][Animation]+[UIView SetAnimationEnabled:]正在从后台线程调用。不支持从UIView或子类上的后台线程执行任何操作,并可能导致意外和隐蔽的行为。痕迹=( 0 UIKitCore 0x0000000111b7bdda kFixedAnimationDuration_block_invoke_5+107 1 libdispatch.dylib 0x000000011016cdb5\u dispatch\u client\u callout+8 2 libdispatch.dylib 0x000000011016e83c\u dispatch\u once\u callout+66 3 UIKitCore 0x0000000111b7bd6d+[UIView(动画)设置动画启用:][76 4 UIKitCore 0x0000000111b7bebb+[UIView(动画)性能无动画:+84 5 UIKitCore 0x0000000110e06d46-[UIVisualEffectView\u UpdateSubview]+325 6 UIKitCore 0x0000000110e07b56-[UIVisualEffectView\u configureAllEffects]+1435 7 UIKitCore 0x0000000110e05fe5-[UIVisualEffectView setBackgroundEffects::+396 8 UIKitCore 0x0000000110e100ee-[[u UIBACKGROUND updateBackground]+229 9 UIKitCore 0x0000000110e1039d-[\u UIBACKGROUND转换背景视图]+208 10 UIKitCore 0x0000000110e99bde-[\u UINavigationBarVisualProviderModernIOS\u updateBackgrounds]+850 11 UIKitCore 0x0000000110e99e20-[\u UINavigationBarVisualProviderModernIOS布局子视图]+272 12 UIKitCore 0x0000000110e4ee4c-[UINavigationBar布局子视图]+256 13 UIKitCore 0x000000011B89E69-[UIView(CALayerDelegate)布局层的子层:+1417 14 UIKitCore 0x0000000110e4eba4-[UINavigationBar布局层的子层:][248 15夸脱核心0x000000011310cd22-[CALayer布局子层]+173 16夸脱核心0x0000000113119FC _ZN2CA516层布局_如果需要PNS 11交易+396 17 UIKitCore 0x0000000111b74e2d-[UIView(层次结构)布局需要以下内容]+646 18 UIKitCore 0x0000000110ffa271-[UINavigationController\u位置导航栏隐藏:边缘:初始偏移量:][800 19 UIKitCore 0x0000000110ffa4f0-[UINavigationController\u位置导航栏隐藏:边缘:][388 20 UIKitCore 0x0000000111100149D-[UINavigationController负载视图]+239 21 UIKitCore 0x00000001110a7d04-[UIViewController loadViewIfRequired]+172 22 UIKitCore 0x00000001110a8524-[UIViewController视图]+27 23 UIKitCore 0x0000000110fcf5b4-[\u UIFullScreen PresentationController\u setPresentedViewController:+89 24 UIKitCore 0x0000000110fc36aa-[UIPresentationController初始化与PresentedViewController:presentingViewController:+133 25 UIKitCore 0x00000001110bb18a-[UIViewController\u presentViewController:withAnimationController:completion:+3700 26 UIKitCore 0x00000001110bddd7\uuuu 63-[UIViewController\uPresentViewController:动画:完成:]\uBlock\uInvoke+98 27 UIKitCore 0x00000001110be2ef-[UIViewController\u性能协调演示文稿:动画:][511 28 UIKitCore 0x00000001110bdd3e-[UIViewController\u presentViewController:动画:完成:][172 29 UIKitCore 0x00000001110bdf9c-[UIViewController当前视图控制器:动画:完成:][150 30物联网模拟器0x000000010b9568a1$S13物联网模拟器11AppDelegateC23SetupootViewControlleryF+913 31物联网仿真器0x000000010b9514dc$S13物联网仿真器11应用程序授权C11应用程序已完成启动,选项为SBSO13UIApplications\u SDYSO0K6启动J3KEYAYPGSGTFYSBCFU+284 32物联网模拟器0x000000010b9516e3$S13物联网模拟器11应用程序授权C11应用程序已完成启动,可选SBSO13UI1应用程序SDYSO0K6启动J3KEYAYPGSGTFYSBCFU+19 33物联网模拟器0x000000010b958eb8$s13IoT\U模拟器12LoginManager 5Login5Retry10CompletionSB\U ySbctFySbcfU+296 34物联网模拟器0x000000010b958f47$S13物联网模拟器12后勤管理员5后勤查询10完整性B_ySbctFySbcfU_TA+23 35物联网模拟器0x000000010b95a8e9$S13物联网模拟器12登录管理器20获得令牌完全性验证结果CFU+3129 36物联网仿真器0x000000010b95a955$S13物联网仿真器12登录管理器20获得令牌充分10完整性YSBC\U TFYSO22身份验证结果CFU+21 37物联网模拟器0x000000010b95ae92$sSo22ADAuthenticationResultCIegg_ABIeyBy_TR+66 38 ADAL 0x000000010bc9953a\uuu 70-[ADAuthenticationRequest(AcquireToken)AcquireToken:comple
LoginManager.shared.login() { (success) -> Void in
        if success {
            print("Login Successful")
    DispatchQueue.main.async{ 
        self.setupRootViewController()
       }
    } else {
            print("Login Un-Successful")
        }
    }