首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新DetailView

如何更新DetailView
EN

Stack Overflow用户
提问于 2016-07-11 05:23:29
回答 0查看 732关注 0票数 0

我有一个基于Master-Detail模板的快速应用程序。MasterView表中的每一行都基于从nib接收的自定义单元格。每个单元格都包括UIlabelUIbutton。这个应用的逻辑如下。如果用户点击某一行,DetailView会根据所选行显示一些详细信息。行上的按钮不调用tableView(_, didSelectRowAtIndexPath)。如果用户点击一行中的按钮,只有一个属于DetailView的图像应该被更改( DetailView上的其他元素保持不变),但它不是。如果我选择另一行,然后选择上一行返回,更改后的图像将按预期显示在DetailView上。问题是如何通过轻敲按钮在DetailView中重绘图像。我尝试过以下操作,但没有成功:

代码语言:javascript
复制
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!
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38296588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档