准备转至导航控制器

Prepare for segue to a navigation controller

我在准备转至控制第二个 table 视图控制器导航栏的导航控制器时遇到了麻烦。

无论如何,我需要将数组传输到下一个 table 视图控制器,这是我用来执行此操作的代码(此代码出现在第一个 table 视图控制器上):

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( { [=10=].AnswersArray })
            ArrayofArrayswithAnswerElementsTwo = ArrayofArrayswithAnswerElements[indexpath.row]
            DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo
        }
    }

当我点击一个单元格时,我在这一行收到 SIGABRT 错误:

let DestinationViewController = segue.destinationViewController as! AnswerTableViewController

我知道它为什么这样做(因为我所做的转换是针对 table 视图而不是导航控制器) 如何在保留导航栏的同时将数据传输到第二个 table 视图。 将不胜感激。

删除第二个导航控制器,您的代码看起来不错。 segue 应该是从 "Your Lists" 到 "Content" 的推送 segue,如果你推送,它不需要另一个导航控制器,但栏仍然会显示。导航栏将向下层叠导航堆栈。

更多信息:

UINavigationController Apple Doc and Example

Ray Wenderlich Storyboard and Nav Controller Tutorial

试试这个

let NavigationController = segue.destinationViewController as! UINavigationController
let DestinationViewController = NavigationController.topViewController as! AnswerTableViewController
// ...
DestinationViewController.ArrayofArrayswithAnswerElements = ArrayofArrayswithAnswerElementsTwo