【发布时间】:2019-06-29 10:02:44
【问题描述】:
我有一个名为 ListViewController 的视图控制器和另一个名为 AddFoodViewController 的视图控制器。在 ListViewController 中,用户可以将自己的成分添加到以表格视图显示的杂货清单中。当他们转到 AddFoodViewController 时,用户应该能够单击一个按钮,上面写着“添加到列表”,这会将配料数组(已经在表格视图中显示)添加到购物清单中。我是新手,所以我想知道是否有人可以提供帮助?我已经成功地让 ListViewController 工作了,但是我不确定如何将 AddFoodViewController 中的成分数组添加到以前的 ListViewController 中。
class AddFoodViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
@IBOutlet weak var FoodTableView: UITableView!
@IBOutlet weak var sendFoodBtn: UIButton!
//array of food
let array = ["1 Salad", "3oz Chicken", "2 Tomatoes", "2 Cucumbers"]
let category = ""
override func viewDidLoad() {
super.viewDidLoad()
}
//display array in table view
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return(array.count)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let foodCell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "foodCell")
foodCell.textLabel?.text = array[indexPath.row]
foodCell.backgroundColor = .clear
foodCell.textLabel?.textColor = .darkGray
foodCell.textLabel?.font = UIFont(name: (foodCell.textLabel?.font.fontName)!, size:17)
return foodCell
}
//button that is supposed to add all ingredients to the ListViewController
@IBAction func addOnClick(_ sender: Any) {
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(segue.identifier == "toList"){
let vc = (segue.destination as! ListViewController)
vc.category = array
}
}
}
【问题讨论】:
-
单击添加按钮时,将新数据追加到数组中并重新加载 tableView 以显示新数据
-
不相关但在
cellForRow中初始化单元格是非常糟糕的做法。在 Interface Builder 中设计一个原型单元并重用它。而return不是函数,去掉括号:return array.count。 -
我有点困惑。你说 List Then food,但我看到 segue 是从 food 到 list。
-
@AnkurLahiry,这就是我想做的。将 AddFoodViewController 中数组中的食物成分添加到杂货清单 (ListViewController) 表格视图中。但我不知道该怎么做,我试过 segue 但我认为我做错了,或者我需要使用委托,因为杂货清单在以前的视图控制器中?但我不知道具体如何实现。
-
@Wings 你会怎么做?我需要委托吗?
标签: ios arrays swift uitableview delegates