簡體   English   中英

在Swift 2中通過'prepareForSegue'傳遞數據

[英]Pass data via 'prepareForSegue' in Swift 2

嘗試將字符串從一個視圖控制器傳遞到另一個視圖控制器(MoreDetailViewController)

出現此錯誤:

接口生成器文件中的未知類MoreDetailViewController。 無法將類型'UIViewController'(0x10f4ae308)的值強制轉換為'ParseStarterProject_Swift.MoreDetailViewController'(0x10d512060)。 (lldb)

抱歉,這很明顯,但是我最近才開始編碼。 謝謝! :)

代碼:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if (segue.identifier == "showDetail") {
        let detailController : MoreDetailViewController  = segue.destinationViewController as! MoreDetailViewController
        detailController.receivedId = selectedId

    }
}

您的第二個視圖控制器是否在Interface Builder中正確設置為MoreDetailViewController

您可以輕松地檢查它:打開.xib或.storyboard文件,選擇第二個視圖控制器,然后在Identity Inspector(右側面板的第三個選項卡)上輸入您的類名。

在此處輸入圖片說明

錯誤僅是說segue目標viewcontroller不是MoreDetailViewController 您也不應強行打開包裝,在這種情況下,如果對象不正確,它將崩潰。

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

編輯

沒有看到以前的答案,這是完全相同的代碼。 對於那個很抱歉。

嘗試這個 :

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

注意:不要忘記將viewcontroller類設置為MoreDetailViewController

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM