知道为什么我的数据没有传递到新的表视图吗?



我正在传递数据从一个表视图到另一个。我希望tableviewA包含的类别数据传递给tableviewB。执行segue时,我为TableviewB准备的打印数据是空的

这是tableviewA

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let category = listOfCategories[indexPath.row].strCategory
let vc = MealsByCategoryVC()
vc.mealCategory = category
print(category) // Properly returns the category
performSegue(withIdentifier: "searchMeals", sender: nil)

}

这是tableview2

class MealsByCategoryVC: UITableViewController {
var mealCategory : String = ""
var listOfMeals : [Meals] = []

override func viewDidLoad() {
super.viewDidLoad()
print("Meal category is (mealCategory)") //This statement returns "Meal category is "

}

This:

let vc = MealsByCategoryVC()
vc.mealCategory = category
performSegue(withIdentifier: "searchMeals", sender: nil)

…不是你如何传递一个值到你通过调用performSegue创建的视图控制器。该代码的前两行什么也没做!segue创建的视图控制器是不同于你通过MealsByCategoryVC()创建的视图控制器;事实上,后者只是被扔掉,毫无用处。您正在设置错误的视图控制器实例的mealCategory

改为实现prepare(for:sender:)。这就是它的作用。你接收segue和它的目标视图控制器。那个是你需要设置其mealCategory的视图控制器。

相关内容

  • 没有找到相关文章

最新更新