我有一個TableViewController
與原型類型的單元格。它由來自.plist
的帶有字典數組的標籤和ImageView填充。我如何將這些數據傳遞給詳細視圖?詳細視圖是UIViewController
子類。我已經嘗試了來自不同教程的方法,但我找不到合適的組合來使其工作。代碼示例會很棒!如何將數據從基於plist的UITableView傳遞到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
}
我創造了另一種的viewController名爲DetailViewController
,所以在DetailViewController
我想告訴所有關於從OurMenuViewController
食品的細節,但我無法通過賽格瑞合格也許是因爲缺乏相關知識的數據,(可以請你幫助我如何從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.
}