我正在为准备控制第二个表视图控制器导航栏的导航控制器的segue而遇到麻烦。
无论如何,我需要将一个数组传输到下一个表视图控制器,这是我用来执行它的代码(此代码出现在第一个表视图控制器上):
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "Load View") {
// pass data to next view
let indexpath: NSIndexPath = self.tableView.indexPathForSelectedRow!
let DestinationViewController = segue.destinationViewController as! AnswerTableViewController
var ArrayofArrayswithAnswerElementsTwo : [Answer]
var ArrayofArrayswithAnswerElements = levelsArray.map( { $0.AnswersArray })
ArrayofArrayswithAnswerElementsTwo = ArrayofArrayswithAnswerElements[indexpath.row]
DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo
}
}
当我点击一个单元格时,我在此行上收到SIGABRT错误:
let DestinationViewController = segue.destinationViewController as! AnswerTableViewController
我知道为什么会这样做(因为我所做的演员是在桌面视图而不是导航控制器) 如何在保留导航栏的同时将数据传输到第二个表视图。 非常感谢帮助。
答案 0 :(得分:2)
删除第二个导航控制器,您的代码看起来很好。 segue应该是从“你的列表”到“内容”的推送,如果你推,它将不需要另一个导航控制器,但该栏仍将显示。导航栏将沿着导航堆栈级联。
更多信息:
答案 1 :(得分:1)
试试这个
let NavigationController = segue.destinationViewController as! UINavigationController
let DestinationViewController = NavigationController.topViewController as! AnswerTableViewController
// ...
DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo