Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何用多个Segue覆盖prepareForSegue_Ios_Swift_Core Data_Uiviewcontroller_Segue - Fatal编程技术网

Ios 如何用多个Segue覆盖prepareForSegue

Ios 如何用多个Segue覆盖prepareForSegue,ios,swift,core-data,uiviewcontroller,segue,Ios,Swift,Core Data,Uiviewcontroller,Segue,因此,我正在学习核心数据,并设法创建了一个带有父关系的segue,该关系允许我根据您在上一个VC类别视图控制器中选择的类别,仅显示某些项目。现在,我已经创建了一个单独的VC,它根据您的位置显示天气,要访问它,您必须单击原始VC中的按钮“类别视图控制器”以访问weatherViewController。但是,每次我尝试这样做并执行一个序列时,我都会遇到以下错误: 这是我目前掌握的代码: override func prepare(for segue: UIStoryboardSegue, send

因此,我正在学习核心数据,并设法创建了一个带有父关系的segue,该关系允许我根据您在上一个VC类别视图控制器中选择的类别,仅显示某些项目。现在,我已经创建了一个单独的VC,它根据您的位置显示天气,要访问它,您必须单击原始VC中的按钮“类别视图控制器”以访问weatherViewController。但是,每次我尝试这样做并执行一个序列时,我都会遇到以下错误:

这是我目前掌握的代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    
    let destinationVC = segue.destination as! NoteTableViewController
    let weatherDestinationVC = segue.destination as! WeatherViewController
    
    if let indexLocale = noteTableView.indexPathForSelectedRow {
        destinationVC.selectionCategory = noteArray[indexLocale.row]
        print(indexLocale.row)
    }   else {
        print("Error")
        weatherDestinationVC.delegate = self
        performSegue(withIdentifier: "goToWeather", sender: self)
    }
    
}


@IBAction func goToWeatherView(_ sender: UIBarButtonItem) {
    performSegue(withIdentifier: "goToWeather", sender: self)
}

任何帮助将不胜感激,因为我只是学习核心数据

有条件地强制转换不同的segue目标视图控制器,或检查segue的标识符(以您喜欢的为准)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let destinationVC = segue.destination as? NoteTableViewController {
        if let indexLocale = noteTableView.indexPathForSelectedRow {
            destinationVC.selectionCategory = noteArray[indexLocale.row]
            print(indexLocale.row)
        }
    } else if let weatherDestinationVC = segue.destination as? WeatherViewController {
        weatherDestinationVC.delegate = self
    }
}

此外,您不必在prepareForSegue中执行检查。

有条件地强制转换不同的segue目标视图控制器,或检查segue的标识符(以您喜欢的为准)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let destinationVC = segue.destination as? NoteTableViewController {
        if let indexLocale = noteTableView.indexPathForSelectedRow {
            destinationVC.selectionCategory = noteArray[indexLocale.row]
            print(indexLocale.row)
        }
    } else if let weatherDestinationVC = segue.destination as? WeatherViewController {
        weatherDestinationVC.delegate = self
    }
}

此外,您不必在prepareForSegue中执行检查。

谢谢,伙计!问题解决了!谢谢你的帮助!谢谢你,伙计!问题解决了!谢谢你的帮助!