【发布时间】:2015-11-08 06:27:48
【问题描述】:
我有一个带有原型单元的TableViewController。它填充了来自 .plist 的标签和 ImageViews 以及一个字典数组。如何将此数据传递给详细视图?详细视图是UIViewController 子类。我已经尝试过不同教程中的方法,但我找不到合适的组合来使它起作用。代码示例会很棒!
import UIKit
class OurMenuViewController: BaseViewController {
@IBOutlet weak var tableView: UITableView?
var menuItems: [MenuItem] = []
override func viewDidLoad() {
super.viewDidLoad()
menuItems = MenuItemsManager.sharedManager.loadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
// MARK: - UITableViewDataSource
extension OurMenuViewController: UITableViewDataSource {
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return menuItems.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: MenuItemTableViewCell = tableView.dequeueReusableCellWithIdentifier("menuItemCell") as! MenuItemTableViewCell
let item = menuItems[indexPath.row]
//display data from MenuItems.plist
cell.menuItemNameLabel?.text = item.name
cell.ingredientsItemLabel?.text = item.ingredients
cell.priceItemLabel?.text = item.price
cell.menuItemImageView?.image = UIImage(named: item.image)
if let discount = item.discount {
cell.discountLabel?.text = discount
cell.discountView?.hidden = false
} else {
cell.discountView?.hidden = true
}
cell.backgroundColor = UIColor.clearColor()
return cell
}
我创建了另一个名为DetailViewController 的viewController,所以在DetailViewController 中我想显示OurMenuViewController 中有关食物的所有详细信息,但我无法通过segue 传递数据,可能是因为缺乏知识;(可以请您帮我如何将数据从MenuItems.plist (OurMenuViewController) 传递到DetailViewController?
import UIKit
class DetailViewController: UIViewController {
@IBOutlet weak var itemNameLabel: UILabel?
@IBOutlet var itemImageView: UIImageView?
private var menuItems: [MenuItem] = []
//var restaurantImage:String!
override func viewDidLoad() {
super.viewDidLoad()
menuItems = MenuItemsManager.sharedManager.loadData()
itemImageView!.image = ?????????????????????
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
【问题讨论】:
标签: ios swift uitableview uiviewcontroller segue