如何用多个 Segue 覆盖 prepareForSegue
How to override the prepareForSegue with multiple Segue's
所以我正在学习 Core Data 并且我设法创建了一个具有父关系的 segue,它允许我根据您 select 在上一个 VC 中的类别仅显示某些项目](类别视图控制器)。现在我在这之后创建了一个单独的 VC,它根据您的位置显示天气,要到达它,您必须单击原始 VC(类别视图控制器)中的按钮才能到达天气视图控制器。但是,每次我尝试这样做并执行 segue 时,我 运行 进入以下错误:
这是我目前的代码:
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 的 identifier
无论你喜欢哪个。
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
}
}
此外,您不必 performSegue
在 prepareForSegue
内。
所以我正在学习 Core Data 并且我设法创建了一个具有父关系的 segue,它允许我根据您 select 在上一个 VC 中的类别仅显示某些项目](类别视图控制器)。现在我在这之后创建了一个单独的 VC,它根据您的位置显示天气,要到达它,您必须单击原始 VC(类别视图控制器)中的按钮才能到达天气视图控制器。但是,每次我尝试这样做并执行 segue 时,我 运行 进入以下错误:
这是我目前的代码:
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 的 identifier
无论你喜欢哪个。
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
}
}
此外,您不必 performSegue
在 prepareForSegue
内。