使用Swift在SWRevealViewController中准备ForSegue

时间:2014-07-10 12:37:47

标签: swift swrevealviewcontroller

我正在尝试使用Swift在prepareForSegue中编写SWRevealViewController。 这是我的代码:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
{
    if(segue!.identifier == "segueName")
    {
        var someText = "Text"
        var rvc:newViewController = segue!.destinationViewController as newViewController
        rvc.topText = someText
    }
}

newViewControllertopText作为NSString

当然我没有文字,因为我应该SWRevealViewControllerSegue,但我不知道它应该如何看待Swift

4 个答案:

答案 0 :(得分:2)

我找到了解决方案。

首先需要配置SWRevealControllerSegue。在swift中它应该看起来像:

    if(segue.isKindOfClass(SWRevealViewControllerSegue))
    {
        var rvcs: SWRevealViewControllerSegue = segue as SWRevealViewControllerSegue
        var rvc:SWRevealViewController = self.revealViewController()

        rvcs.performBlock = {(rvc_segue, svc, dvc) in
            var nc:UINavigationController = dvc as UINavigationController
            rvc.pushFrontViewController(nc, animated: true)
        }
    }

二。 XCode测试版现在正常运行,IBOutletsegue就像这样。变量一切都还可以。

答案 1 :(得分:2)

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

    if(segue.isKindOfClass(SWRevealViewControllerSegue))
    {
        var rvcs: SWRevealViewControllerSegue = segue as SWRevealViewControllerSegue
        var rvc:SWRevealViewController = self.revealViewController()

        rvcs.performBlock = {(rvc_segue, svc, dvc) in
            var nc:UINavigationController = self.revealViewController().frontViewController as UINavigationController
            nc.setViewControllers([dvc], animated: true)
            self.revealViewController().setFrontViewPosition(FrontViewPositionLeft, animated: true)
        }
    }

}

答案 2 :(得分:1)

这不适用于最新版本。发行说明指出:

  

采用更清晰的方法来提供故事板支持。 SWRevealViewControllerSegue现已弃用,您应该使用SWRevealViewControllerSegueSetController和SWRevealViewControllerSeguePushController。

虽然我找不到任何可以解释这个问题的快速例子。

performBlock方法不再存在。

感谢任何帮助。在没有首先学习目标c的情况下,似乎不可能迅速做到:)

答案 3 :(得分:0)

什么是newViewController?这应该有效:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
{
    if(segue.identifier == "segueName")
    {
        let someText = "Text"
        let rvc = segue.destinationViewController as SWRevealViewController
        rvc.topText = someText
    }
}