如何解决 swrevealviewcontroller 问题
how to resolve the swrevealviewcontroller issue
我在我的项目中使用了SWRevealviewcontroller
。起初,我将 viewcontroller
命名为“SWREVEALVIEWController”,并将 sw_rear
设置为 tableviewcontroller
。在 sw_front
部分我设置了 TabbarViewcontroller
。
现在我的 tableview
中有几行数据,我设置为 sw_rear
。
menuArray = ["HOME","ORDER NOW","PHOTOS","REVIEWS","FEEDBACK","RATE US","LOGIN"]
然后点击每个特定的单元格,我将其设置为适当的 viewcontroller,就像这样。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
switch(indexPath.row)
{
case 0 :
print("1st row")
//self.performSegueWithIdentifier("Main", sender: self)
let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc : UINavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("home") as! UINavigationController
self.presentViewController(vc, animated: true, completion: nil)
case 1 :
print("2nd row")
let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc : UINavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("menuVC") as! UINavigationController
self.presentViewController(vc, animated: true, completion: nil)
但是在使用它之后它会转到适当的位置但没有它的标签栏项目。
看屏幕。第一个屏幕是
单击侧面菜单单元格后,例如单击主页,主页 viewcontroller 打开但没有其标签栏项目。如何解决这个问题??
然后 swRevealviewcontromller
的滑动按钮在通过单击单元格菜单返回任何 viewcontroller
后不起作用...???
将此代码添加到您的 SW_front ViewController
-(void)viewWillAppear:(BOOL)animated{
if revealViewController() != nil {
menuButton.target = revealViewController()
menuButton.action = "revealToggle:"
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
您需要使用 SWRevealViewController 中的 pushFrontViewController
方法来更改前视图控制器。
例子
self.revealViewController().pushFrontViewController(viewController, animated: true)
要推送你的 TabbarViewcontroller,你应该在故事板中给它一个标识符。然后你可以使用
let sb = UIStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier")
self.revealViewController().pushFrontViewController(vc, animated: true)
已编辑
打开某个标签页
let sb = UIStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier") as! UITabBarController
vc.selectedIndex = 1 // Your index you want to open
self.revealViewController().pushFrontViewController(vc, animated: true)
我没有测试这个
let controller = self.storyboard?.instantiateViewController(withIdentifier: "YourControllerIndentifire")
let nc = UINavigationController(rootViewController: controller!)
revealViewController()?.pushFrontViewController(nc, animated: true)
我在我的项目中使用了SWRevealviewcontroller
。起初,我将 viewcontroller
命名为“SWREVEALVIEWController”,并将 sw_rear
设置为 tableviewcontroller
。在 sw_front
部分我设置了 TabbarViewcontroller
。
现在我的 tableview
中有几行数据,我设置为 sw_rear
。
menuArray = ["HOME","ORDER NOW","PHOTOS","REVIEWS","FEEDBACK","RATE US","LOGIN"]
然后点击每个特定的单元格,我将其设置为适当的 viewcontroller,就像这样。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
switch(indexPath.row)
{
case 0 :
print("1st row")
//self.performSegueWithIdentifier("Main", sender: self)
let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc : UINavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("home") as! UINavigationController
self.presentViewController(vc, animated: true, completion: nil)
case 1 :
print("2nd row")
let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc : UINavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("menuVC") as! UINavigationController
self.presentViewController(vc, animated: true, completion: nil)
但是在使用它之后它会转到适当的位置但没有它的标签栏项目。
看屏幕。第一个屏幕是
单击侧面菜单单元格后,例如单击主页,主页 viewcontroller 打开但没有其标签栏项目。如何解决这个问题??
然后 swRevealviewcontromller
的滑动按钮在通过单击单元格菜单返回任何 viewcontroller
后不起作用...???
将此代码添加到您的 SW_front ViewController
-(void)viewWillAppear:(BOOL)animated{
if revealViewController() != nil {
menuButton.target = revealViewController()
menuButton.action = "revealToggle:"
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
您需要使用 SWRevealViewController 中的 pushFrontViewController
方法来更改前视图控制器。
例子
self.revealViewController().pushFrontViewController(viewController, animated: true)
要推送你的 TabbarViewcontroller,你应该在故事板中给它一个标识符。然后你可以使用
let sb = UIStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier")
self.revealViewController().pushFrontViewController(vc, animated: true)
已编辑
打开某个标签页
let sb = UIStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier") as! UITabBarController
vc.selectedIndex = 1 // Your index you want to open
self.revealViewController().pushFrontViewController(vc, animated: true)
我没有测试这个
let controller = self.storyboard?.instantiateViewController(withIdentifier: "YourControllerIndentifire")
let nc = UINavigationController(rootViewController: controller!)
revealViewController()?.pushFrontViewController(nc, animated: true)