2016-02-18 79 views
0

我正在創建一個應用程序,它有一個簡單的登錄頁面,現在只需將字符串(用戶名)發送到下一個屏幕。然後下一個屏幕使用SWRevealViewController(https://github.com/John-Lluch/SWRevealViewController)。將數據通過segue傳遞給SWRevealController

我已經試過

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let vc = segue.destinationViewController as! MenuController 
    vc.userType = userID.text 
    } 

但是,這給我的錯誤Could not cast value of type 'SWRevealViewController' to 'MenuController'. MenuController是我試圖將數據傳遞到類。

我知道這不是一個常見的控制器,但希望有人可以提供幫助。

+0

根據您的信息我假定destinationViewController是SWRevealViewController,對嗎?如果是這樣,那麼MenuController可能是SWRevealViewController(revealViewController)的一個屬性。如果是這樣,那麼你必須將destinationViewController轉換爲SWRevealViewController,然後以MenuController的身份訪問revealViewController屬性。 –

+0

你可以在'NSUserDefaults'中保存'username'以便在登錄後使用它。 – iRiziya

+0

@iRiziya我現在已經這樣做了,但這看起來不是最好的解決方案 – John

回答

0

試試這個。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let revealVC = segue.destinationViewController as? SWRevealViewController { 
     if let menuVC = revealVC.revealViewController as? MenuController { 
      menuVC.userType = userID.text 
     } 
    } 
} 
+0

這給了我錯誤'cast from() - > SWRevealController!到不相關的類型MenuController總是失敗' – John

+0

你的MenuController在哪裏在視圖控制器層次?它是SWRevealController實例的rearViewController嗎? –

+0

我有一個登錄頁面,只是一個空白的活動,這個類是SWRevealController,並有一個segue'sw_rear'去MenuController – John