我正在尝试使用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
}
}
在newViewController
我topText
作为NSString
当然我没有文字,因为我应该SWRevealViewControllerSegue
,但我不知道它应该如何看待Swift
答案 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测试版现在正常运行,IBOutlet
和segue
就像这样。变量一切都还可以。
答案 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
}
}