我有一个基于Master-Detail模板的快速应用程序。MasterView表中的每一行都基于从nib接收的自定义单元格。每个单元格都包括UIlabel和UIbutton。这个应用的逻辑如下。如果用户点击某一行,DetailView会根据所选行显示一些详细信息。行上的按钮不调用tableView(_, didSelectRowAtIndexPath)。如果用户点击一行中的按钮,只有一个属于DetailView的图像应该被更改( DetailView上的其他元素保持不变),但它不是。如果我选择另一行,然后选择上一行返回,更改后的图像将按预期显示在DetailView上。问题是如何通过轻敲按钮在DetailView中重绘图像。我尝试过以下操作,但没有成功:
class MasterViewCell: UITableViewCell {
weak var detailViewController: DetailViewController?
@IBAction func buttonTap(sender: AnyObject) {
//method to set new image
detailViewController!.setNewImage()
detailViewController!.view.setNeedsDisplay()
}
}
class MasterViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "itemCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "Cell")
if let split = self.splitViewController {
let controllers = split.viewControllers
self.detailViewController = (controllers[controllers.count-1] as! UINavigationController).topViewController as? DetailViewController
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as? MasterViewCell
cell?.detailView = self.detailViewController
return cell!
}https://stackoverflow.com/questions/38296588
复制相似问题