在swift中通过segue传递数据时出现问题

时间:2015-05-31 02:44:14

标签: ios swift null segue

我知道这个问题已经得到解答,但这并没有解决我的问题。问题是当我通过segue传递数据时,它在目标ViewController中返回nil。 假设我已经在目标ViewController中定义了一个News()对象和三个字符串对象我在Segue方法中设置但在目标ViewController中得到了nil。

class NewsDetailViewController: UIViewController {
    var objNews = News();
    var newsTime: String?
    var newsDetail: String?
    var imageURL: String?

// rest of the class
.
.
}

这是我的segue方法

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Pass the selected object to the new view controller.
    if segue.identifier == "SegueNewsDetail" {
        var ndVC = NewsDetailViewController();
        var indexPath: NSIndexPath = self.tblViewStudent.indexPathForSelectedRow()!
        var tempObj = self.news.objectAtIndex(indexPath.row) as News
        ndVC.objNews = (self.news.objectAtIndex(indexPath.row) as News)
        ndVC.newsTime = tempObj.created_at;
        ndVC.newsDetail = tempObj.newsDescription;
        ndVC.imageURL = tempObj.imageURL;

        println("\(ndVC.newsTime) \(ndVC.newsDetail) \(ndVC.imageURL)")

    }

当我尝试在segue方法中记录值以检查值是否设置时(这些值设置为所需的值,我的意思是在segue方法中不会得到nil):

println("\(ndVC.newsTime) \(ndVC.newsDetail) \(ndVC.imageURL)")

我尝试了很多选项但失败了。 任何人请帮助..

提前致谢

1 个答案:

答案 0 :(得分:3)

变化

var ndVC = NewsDetailViewController()

let ndVC = segue.destinationViewController as! NewsDetailViewController

顺便说一句,你不需要快速分号