为导航控制器准备segue
问题描述:
我正在准备一个导航控制器,正在控制第二个表视图控制器导航栏的segue的麻烦。 为导航控制器准备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
我知道为什么它这个(因为我做演员是表视图没有导航控制器) 我怎样才能将数据传输到那第二张桌子一边看ke eping导航栏。 帮助将不胜感激。
答
试试这个
let NavigationController = segue.destinationViewController as! UINavigationController
let DestinationViewController = NavigationController.topViewController as! AnswerTableViewController
// ...
DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo
答
删除第二个导航控制器,你的代码看起来很好。 segue应该是从“您的列表”到“内容”的推送,如果您推送,它不需要另一个导航控制器,但该栏仍然会显示。导航栏将沿着导航堆栈级联。
更多信息:
你是从一个导航控制器推到另一个人的原因是什么?看起来像第二个导航控制器是不必要的 – JeffN
原因是我想让我的取消按钮正常工作 – needshelp