У меня есть один вид таблицы с большим количеством ячеек. Каждая ячейка имеет одно изображение и одну метку. И мне нужно, когда когда-либо пользователь нажимает любую ячейку, он должен идти к деталям viewcontroller.And, мне нужно показать соответствующее имя изображения и метки в моем контроллере подробных представлений. Как это сделать.как передать значение из ячейки таблицы зрения для просмотра контроллера
Я сделал все segue.But в моем подробном контроллере представления у меня есть одно изображение и label.Now, как я могу показать изображение и имя метки - когда я выбираю любую ячейку из моего представления таблицы?
import UIKit
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet var tableView: UITableView!
var valueToPass:String!
var selectedIndexPath: NSIndexPath = NSIndexPath()
var tableData: [String] = ["Christ Redeemer", "Great Wall of China", "Machu Picchu","Petra","Pyramid at Chichén Itzá","Roman Colosseum","Taj Mahal"]
var arrImageName: [String] = ["ChristRedeemer", "GreatWallOfChina", "MachuPicchu","Petra","PyramidChichenItza","RomanColosseum","TajMahal"]
var tableRate: [String] = ["$120", "$100", "$222","$1000","$500","$900","$2000"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
func numberOfSectionsInTableView(tableView: UITableView) ->Int
{
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:CustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("CustomTableViewCell") as! CustomTableViewCell
cell.imageVW.image = UIImage(named:self.arrImageName[indexPath.row])
cell.lblName.text = self.tableData[indexPath.row]
cell.rateName.text = self.tableRate[indexPath.row]
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.selectedIndexPath = indexPath
performSegueWithIdentifier("DetailView", sender: indexPath)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){
let indexPath = self.selectedIndexPath
if (segue.identifier == "DetailView") {
var viewController = segue.destinationViewController as! DetailVC
viewController.data = UIImagePNGRepresentation(UIImage(named:self.arrImageName[indexPath.row])!)!
//viewController.name = self.tableData[[indexPath.row]]
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Вот мой detailvc.swift
import UIKit
class DetailVC: UIViewController {
var data: NSData = NSData()
var name: String = String()
@IBOutlet weak var ImgView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.ImgView.image = UIImage(data: data)
//self.detailLabelNamee.text = name
}
}
я получаю сообщение об ошибке, что 'член Instance«данные»не могут быть использованы на типа«DetailVC»' – mark
Но как я могу присвоить изображение, этикетки имя в моей Подробный диспетчер представлений. Потому что, когда я выбираю любую ячейку, мне нужно показать это конкретное изображение ячейки и имя в моем следующем контроллере подробного представления. Правильно ?? .. Так что только я сделал iboutlet для изображения, наклейка на мой контроллер представления подробностей. Теперь я сделал вы решили. Но просто создайте переменную. Как я могу назначить изображение, имя ярлыка в контроллере подробного представления? – mark
Я отредактировал свой ответ и добавлю viewdidload. –