我是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];
有人可以指导我为什么以及如何实现我的目标?这可能是一个愚蠢的问题,但我需要帮助。提前谢谢!
答案 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)