无法将类型值转换为 UINavigationController swift3

Posted

技术标签:

【中文标题】无法将类型值转换为 UINavigationController swift3【英文标题】:Could not cast value of type to UINavigationController swift3 【发布时间】:2018-09-16 23:28:36 【问题描述】:

我收到以下转换错误(当我单击模拟器 [NavigationController] 中的“+”按钮时)并且无法弄清楚原因。 我正在使用 Swift3。感谢您的帮助!

MainVC.swift

        protocol AddTaskDelegate: class 
            func saveTask(by controller: AddVC, with data: [String:String])
        


        class MainVC: UIViewController 
            //    all tasks from the database
            var tasks = [ToDoListTasks]()

            @IBOutlet weak var table: UITableView!

            //    connect with Core Data
            let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    ...

//    prepare segue to send data
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
        if segue.identifier == "AddSegue" 
            let navigationController = segue.destination as! UINavigationController
            let childViewController = navigationController.topViewController as! AddVC

            childViewController.delegate = self as! AddTaskDelegate
        
    
 

AddVC.swift

class AddVC: UIViewController 

    weak var delegate: AddTaskDelegate?
...

【问题讨论】:

【参考方案1】:

只需阅读错误消息。你在说

segue.destination as! UINavigationController

但是这个segue的目的地不是 UINavigationController。

【讨论】:

嗨,马特,感谢您的帮助。

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

Swift“无法将''类型的值转换为'String'类型

无法将“字符串”类型的值转换为预期的参数类型 [任何]

无法将“__NSCFNumber”()类型的值快速转换为“NSArray”

无法将 UIViewController 类型的值转换为 PatternDetailViewController

无法将 PHP 值转换为日期类型。预期以下类型之一:null,DateTime [关闭]

Swift:无法将“NSDate”类型的值转换为预期的参数类型“NSDateComponents”