我知道这个问题已经得到解答,但这并没有解决我的问题。问题是当我通过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)")
我尝试了很多选项但失败了。 任何人请帮助..
提前致谢
答案 0 :(得分:3)
变化
var ndVC = NewsDetailViewController()
到
let ndVC = segue.destinationViewController as! NewsDetailViewController
顺便说一句,你不需要快速分号