[英]getting a detail view of tableView cell data
我是新手,我想弄清楚的是如何从表视图中使细节视图控制器成为现实。 现在,我已经设置了segue(带有“ showDetails”标识符)以打开详细视图控制器。 这是我要从中选择的表视图控制器中的代码,只是不确定我是否在正确执行此操作。 任何帮助,将不胜感激!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
//Core Data
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let managedContext : NSManagedObjectContext = appDelegate.managedObjectContext!
var fetchRequest = NSFetchRequest(entityName: "Log")
fetchRequest.returnsObjectsAsFaults = false;
var results: NSArray = managedContext.executeFetchRequest(fetchRequest, error: nil)!
var totalHoursWorkedSum: Double = 0
var logsArray = [String]()
for res in results {
var totalWorkTimeInHours = res.valueForKey("totalWorkTimeInHours") as Double
var dateString = res.valueForKey("dateString") as String
var comments = res.valueForKey("comments") as String
var loggedTotalWorkTimeInHours = "\(totalWorkTimeInHours)"
var loggedDateString = "\(dateString)"
var loggedComments = "\(comments)"
let destinationVC = segue.destinationViewController as LogDetailTableViewController
destinationVC.logTimeTextField.text = loggedTotalWorkTimeInHours
destinationVC.logDateTextField.text = loggedDateString
destinationVC.commentsTextField.text = loggedComments
}
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedLog: AnyObject = loggedTimes[indexPath.row]
let destinationVC = LogDetailTableViewController()
destinationVC.logTimeTextField = selectedLog as UITextField
destinationVC.logDateTextField = selectedLog as UITextField
destinationVC.commentsTextField = selectedLog as UITextField
destinationVC.performSegueWithIdentifier("showDetails", sender: self)
}
不确定该怎么做,当我尝试点击tableview单元以尝试显示详细信息时,我总是崩溃。
您的代码有几个问题。 首先,使用segues,您无需创建目标视图控制器-它是为您创建的。 您应该删除didSelectRowAtIndexPath中创建您的详细信息视图控制器的行,因为不会隐瞒该行。
其次,取决于您如何从表视图控制器连接segue,您可能需要调用performSegueWithIdentifier。
在情节提要中连接序列的一种常见方法是从原型单元到详细视图控制器。 通过这种方法,当用户点击单元格时会自动触发segue。 您不需要显式调用performSegueWithIdentifier。
另一方面,如果将segue从表视图控制器连接到详细信息视图控制器,则需要调用它。
无论哪种情况,您都需要从选定的单元格中获取相关信息,以传递给prepareForSegue中的详细信息视图控制器。 我使用的一种技术是将对单元格数据(您的selectedTime)的引用保存在类级别的属性中,然后通过我在其上定义的属性将其发送到目标视图控制器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.