【问题标题】:Pass data through segue to SWRevealController通过 segue 将数据传递给 SWRevealController
【发布时间】:2016-05-30 02:15:05
【问题描述】:

我正在制作一个应用程序,它有一个简单的登录页面,现在只需将一个字符串(用户名)发送到下一个屏幕。然而,下一个屏幕使用 SWRevealViewController (https://github.com/John-Lluch/SWRevealViewController)。

我试过了

    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 是我试图将数据传递给的类。

我知道这不是一个普通的控制器,但希望有人能提供帮助。

【问题讨论】:

  • 根据您的信息,我假设destinationViewController 是SWRevealViewController,对吗?如果是这样,那么可能 MenuController 是 SWRevealViewController (revealViewController) 的一个属性。如果是这样,那么您必须将destinationViewController 转换为SWRevealViewController,然后将revealViewController 属性作为MenuController 访问。
  • 您可以将username保存在NSUserDefaults中,以便登录后使用。
  • @iRiziya 我现在有,但这似乎不是最好的解决方案
  • 您好,您是如何解决将数据从视图控制器传递到显示视图控制器的问题的..

标签: xcode swift swrevealviewcontroller


【解决方案1】:

试试这个吧。

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
        }
    }
}

【讨论】:

  • 这给了我错误cast from ()->SWRevealController! to unrelated type MenuController always fails
  • 您的 MenuController 在视图控制器层次结构中的什么位置?是SWRevealController实例的rearViewController吗?
  • 我有一个登录页面,它只是一个空白活动,它的类是 SWRevealController,并且有一个转到 MenuController 的sw_rear
  • 在这种情况下,最好从 SWRevealViewController 派生并添加要传递给 SWRevalViewController 内的菜单控制器的属性。我认为您不能在不实例化的情况下将数据传递给菜单控制器。您可以使用全局变量,然后从 MenuController 访问它,但这不是一个好方法。派生是更好的选择,因为您可以向其中添加自定义属性。
  • 你能解释一下我该怎么做吗?
猜你喜欢
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多