通过segue和sqlite

时间:2016-06-16 16:51:39

标签: ios swift sqlite

我试图通过segue将一些数据从选定行传递到另一个viewcontroller,但我不能。我几乎尝试了一切,但我总是得到:

2016-06-16 18:41:20.069 Wine Dictionary[3282:55647] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<Wine_Dictionary.DetailUI: 0x7f8a1ae2fa60>) has no segue with identifier 'SegueToDetailUI''

我已经尝试过更改方法,更改标识符等。

以下是代码的屏幕截图:http://prntscr.com/bh6e6l 以下是故事板和segue标识符的屏幕截图:http://prntscr.com/bh6f6q

3 个答案:

答案 0 :(得分:0)

删除override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "SegueToDetailUI") { let selectedInfo = self.NAME?[indexPath.row] let indexPath = tableView.indexPathForSelectedRow let destinationVC = segue.destinationViewController as! DetailUI destinationVC.programVar = selectedInfo! } } 中的代码并添加此

{{1}}

假设我拼写正确(如果不仅仅是纠正我的拼写)

答案 1 :(得分:0)

尝试删除你的segue并重新创建它..

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if (segue.identifier == "SegueToDetailUI")
   {
    if let rowselect = tableView!.indexPathForSelectedRow        
        {
          let selectedInfo =self.NAME?[rowselect]
          let moveVC:DetailUI = segue.destinationViewController as! DetailUI
         moveVC.programVar = selectedInfo!  
        } 
    }
}

答案 2 :(得分:0)

由于您的segue从MainUI转到DetailUI,因此必须从MainUI(segue原点的视图控制器)运行executeSegueWithIdentifier(&#34; SegueToDetailUI&#34;)。

调用此方法将实例化DetailUI视图控制器,并将其推送到屏幕上。

新创建的DetailUI视图控制器的配置发生在方法MainUI.prepareForSegue中。那就是你提供programVar属性的地方。

记住:当您使用故事板时,您永远不会永远不会自己实例化视图控制器(let vc = MyViewController())。相反,您将始终使用NSStoryboard.instantiateViewController ...方法或NSViewController.performSegue(...)之一。