如何从单击按钮打开SWRevealViewController?

时间:2014-11-10 08:48:10

标签: ios objective-c xcode mobile xcode6

我是XCode / iOS开发的新手,我正在尝试创建导航菜单。我跟着Appcoda's Slideout Sidebar-Menu Tutorial并设法让它发挥作用。当SWRevealViewController是初始的ViewController时,它打开很棒。

现在,我有一个具有Button的登录页面,当我点击它时,我希望它被导航到SWRevealViewController。

我尝试使用此代码打开SWRevealViewController按钮单击,但它没有显示,代码在其他UIViewController上工作。

SWRevealViewController *menu = [[SWRevealViewController alloc] init]; [self.navigationController pushViewController:menu animated:YES];

有人可以指导我为什么以及如何实现我的目标?这可能是一个愚蠢的问题,但我需要帮助。提前谢谢!

enter image description here

3 个答案:

答案 0 :(得分:0)

请检查以下代码。我希望它会对你有所帮助

第1步:只需向您提供故事板参考SWRevealViewController,然后在您的按钮操作中编写以下代码

在Objective-C

 SWRevealViewController *revealVC = [self.storyboard instantiateViewControllerWithIdentifier:@"swRevealViewContoller"];
                revealVC.delegate=self;
 [[UIApplication sharedApplication]keyWindow].rootViewController = revealVC;

在Swift中:

//MARK: searchBtnClicked
@IBAction func searchBtnClicked(sender: AnyObject) {
    let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
    let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("swRevealViewContoller") as? SWRevealViewController
     UIApplication.sharedApplication().keyWindow!.rootViewController = nextViewController;
}

如果您遇到此类问题,请将其视为" rootViewController"然后享受你的编码..

答案 1 :(得分:0)

使用此

let myRevealViewControl:SWRevealViewController = self.revealViewController()
    let myStoryBoard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let myDest = myStoryBoard.instantiateViewController(withIdentifier: "homePage") as! UIViewController
    let myNewFrontView = UINavigationController.init(rootViewController: myDest)
    myRevealViewControl.pushFrontViewController(myNewFrontView, animated: true)

答案 2 :(得分:0)

您可以这样做:

menuButton.addTarget(revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside)