TableView and Detail Segue



我正试图使用"performSegueWithIdentifier"将值从表视图传递到某个详细信息视图。详细信息页面运行良好,但值没有正确显示在屏幕上。如果我点击表视图中的第一个选项,详细信息页面的内容为空白。如果我点击第二个项目,第一个项目就会加载到详细信息页面中。

我的表视图代码:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let object = objectAtIndexPath(indexPath)
    self.titulo = object!.objectForKey("titulo") as! String
    self.sub_titulo = object!.objectForKey("sub_titulo") as! String
    self.url = object!.objectForKey("url") as! String
    self.tipo = object!.objectForKey("tipo") as! Int
    //Chama a segue
    self.performSegueWithIdentifier("detailSegue", sender: self)
}
//In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let svc = segue.destinationViewController as! DetailViewController
    svc.titulo = self.titulo
    svc.sub_titulo = self.sub_titulo
    svc.url = self.url
    svc.tipo = self.tipo
}

我的详细视图控制器:

import UIKit
class DetailViewController: UIViewController {
    @IBOutlet weak var imagemDestaque: UIImageView!
    @IBOutlet weak var tituloLabel: UILabel!
    @IBOutlet weak var conteudoLabel: UILabel!
    var titulo = String()
    var sub_titulo = String()
    var tipo = Int()
    var url = String()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.s
        print(self.titulo)
        tituloLabel.text = self.titulo
        conteudoLabel.text = self.sub_titulo
    }
   }

这样更改代码:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    //Chama a segue
    self.performSegueWithIdentifier("detailSegue", sender: self)
}
//In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let svc = segue.destinationViewController as! DetailViewController
    let indexPath = tableView.indexPathForSelectedRow()
    let object = objectAtIndexPath(indexPath)
    svc.titulo = object!.objectForKey("titulo") as! String
    svc.sub_titulo = object!.objectForKey("sub_titulo") as! String
    svc.url = object!.objectForKey("url") as! String
    svc.tipo = object!.objectForKey("tipo") as! Int
}

最新更新