无法将 LaunchViewController 转换为 UINavigationController

Posted

技术标签:

【中文标题】无法将 LaunchViewController 转换为 UINavigationController【英文标题】:can't cast LaunchViewController to UINavigationController 【发布时间】:2019-01-06 22:12:30 【问题描述】:

我试图从 AppDelegate.swift 中检查网络状态,而不是从 LaunchViewController 中检查。

当我关闭我的网络时,我在AppDelegate 中写了showOfflinePage 我有这个错误投射

无法转换类型的值 'reachability_playground.LaunchViewController' (0x1095b5f20) 到 'UINavigationController' (0x114bb2a20)。 2019-01-06 16:42:04.079430-0500 可达性游乐场 [2781:93635] 无法 'reachability_playground.LaunchViewController' 类型的强制转换值 (0x1095b5f20) 到 'UINavigationController' (0x114bb2a20)。

   private func showOfflinePage() -> Void 
        DispatchQueue.main.async 
            let storyboard = UIStoryboard(name: "Main", bundle: nil);
            let viewController: LaunchViewController = storyboard.instantiateViewController(withIdentifier: "LaunchViewController") as! LaunchViewController;

            // Then push that view controller onto the navigation stack
            let rootViewController = self.window!.rootViewController as! UINavigationController
            rootViewController.pushViewController(viewController, animated: true);
        
    

【问题讨论】:

【参考方案1】:

根据异常消息,您的根视图控制器是LaunchViewController 的实例,而不是UINavigationController 的实例,因此强制向下转换失败。

您需要检查情节提要并确保入口点场景是导航控制器。

【讨论】:

以上是关于无法将 LaunchViewController 转换为 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章

解析 PFUser.currentUser 返回 nil - Swift

SQL Server Management Studio 无法将类型为“System.__ComObject

为啥我无法正确获取图像数据或无法将数据发送到服务器?

无法将 createdAt 和 updatedAt 保存为日期时间值,也无法将后端保存为前端

C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable

无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS