通过Swift 2中的'prepareForSegue'传递数据

时间:2016-03-04 09:20:37

标签: ios swift

尝试将字符串从一个视图控制器传递到另一个视图控制器(MoreDetailViewController)

想出这个错误:

  

Interface Builder文件中的未知类MoreDetailViewController。   无法将'UIViewController'类型的值(0x10f4ae308)转换为'ParseStarterProject_Swift.MoreDetailViewController'(0x10d512060)。   (lldb)

很抱歉,如果这很明显,但我最近才开始编码。谢谢! :)

代码:

var foo = {
   bar1 : function () {

   }, 

   bar2 : function () {
      return function () {
        // bar1(); pass bar1 through here ... this.bar1 ? 
      }

}

3 个答案:

答案 0 :(得分:2)

您的第二个视图控制器是否在Interface Builder中正确设置为MoreDetailViewController

您可以轻松查看:打开.xib或.storyboard文件,选择第二个视图控制器,然后在Identity Inspector(右侧面板,第三个选项卡)上输入您的班级名称。

enter image description here

答案 1 :(得分:1)

错误只是说segue目标视图控制器不是MoreDetailViewController。您也不应该强制打开它,在这种情况下,如果对象不正确,它将崩溃。

if segue.identifier == "showDetail" {
    if let vc = segue.destinationViewController as? MoreDetailViewController {
        vc.receivedId = selectedId
    }
}

修改

没有看到以前的答案是完全相同的代码。对不起。

答案 2 :(得分:0)

试试这个:

      if segue.identifier == "showDetail"
        {
            if let detailController = segue.destinationViewController as? MoreDetailViewController
            {
              detailController.receivedId = selectedId
             }
        }

注意:不要忘记将viewcontroller类设置为MoreDetailViewController