【问题标题】:Swift: Unable to segue from a UIViewController to a UITableViewControllerSwift:无法从 UIViewController 切换到 UITableViewController
【发布时间】:2014-11-06 07:45:31
【问题描述】:

我正在尝试将数据从 UIViewController 类传递到另一个视图 UITableViewController。我可以通过以下方式成功地将数据从UIViewController 传递到UIViewController

override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
        if (segue.identifier == "segueName") {
            var target = segue!.destinationViewController as NextViewController
            target.name = self.nameText.text
        }
}

但是尝试使用这种逻辑从 UIViewController 转到 UITableViewController 给了我 “Swift dynamic cast failed”位于“var target...”行的位置。我没有收到任何构建错误,Xcode 知道下一个视图控制器(UITableViewController)中有一个变量“名称”等待分配给它的数据。

【问题讨论】:

  • 您是否仔细检查了故事板中目标表视图控制器的自定义类是否设置为“NextViewController”?
  • 是的,很遗憾,这不是问题所在。 (感谢您的回复。)
  • @DelightedD0D 的这条评论对stackoverflow.com/questions/14263644/… 有帮助吗?
  • 很遗憾没有。只是为了测试一下,我从第一个视图控制器类中删除了“prepareForSegue”方法,并修改了“UITableViewController”类中的代码,但仍然崩溃。

标签: uitableview swift uiviewcontroller segue


【解决方案1】:

只是为了确保没有副作用,因为您的函数签名在选项方面看起来有些奇怪。试试这个:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "segueName") {
        if let target = segue.destinationViewController as? NextViewController
            target.name = self.nameText.text
        }
    }
}

然后在该函数中放置一个断点并单步执行代码以查看会发生什么。

【讨论】:

  • 谢谢。这帮助我意识到数据确实已成功移动,所以现在我预计 UITableView 控制器有问题,以及它期望分解和显示什么样的数据。我通过 segue 传递 NSDictionaries 的 NSArray,我想显示每个字典的键之一的值(每个字典的键相同)。
  • 它正在工作。我想在表格中显示的值的键有误
猜你喜欢
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多