【问题标题】:Prepare for segue to a navigation controller准备转入导航控制器
【发布时间】:2015-10-16 21:59:31
【问题描述】:

我在准备对控制第二个表视图控制器导航栏的导航控制器进行 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

我知道为什么会这样(因为我所做的演员是表格视图而不是导航控制器) 如何在保留导航栏的同时将数据传输到第二个表格视图。 非常感谢您的帮助。

【问题讨论】:

  • 您从一个导航控制器推送到另一个导航控制器的任何原因?似乎不需要第二个导航控制器
  • 原因是我试图让我的取消按钮正常工作

标签: ios swift uitableview uinavigationcontroller segue


【解决方案1】:

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

更多信息:

UINavigationController Apple Doc and Example

Ray Wenderlich Storyboard and Nav Controller Tutorial

【讨论】:

    【解决方案2】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 2020-07-14
      • 2018-08-19
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多