2016-02-18 78 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