【问题标题】:how to resolve the swrevealviewcontroller issue如何解决 swrevealviewcontroller 问题
【发布时间】:2016-11-15 22:04:09
【问题描述】:

我在我的项目中使用了SWRevealviewcontroller。起初我将viewcontroller 命名为“SWREVEALVIEWController”并将sw_rear 设置为tableviewcontroller。在sw_front 部分我设置了TabbarViewcontroller

现在我的tableview 中有几行数据,我设置为sw_rear

menuArray = ["HOME","ORDER NOW","PHOTOS","REVIEWS","FEEDBACK","RATE US","LOGIN"]

然后单击每个特定的单元格,我将其设置为像这样的适当视图控制器。

 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)

但是在使用它之后它会转到适当的位置但没有它的标签栏项目。

查看屏幕。第一个屏幕是

单击侧边菜单单元格后,例如单击主页,主页视图控制器打开,但没有其标签栏项目。这个怎么解决??

之后swRevealviewcontromller 的滑动按钮在单击单元格菜单返回到任何viewcontroller 后不起作用...????

【问题讨论】:

  • 你能把你的视图控制器重命名为另一个名字吗?
  • 是的,你可以取任何名字@BashirSidani

标签: ios swift xcode swrevealviewcontroller


【解决方案1】:
 let controller = self.storyboard?.instantiateViewController(withIdentifier: "YourControllerIndentifire")
 let nc = UINavigationController(rootViewController: controller!)
 revealViewController()?.pushFrontViewController(nc, animated: true)

【讨论】:

    【解决方案2】:

    您需要使用 SWRevealViewController 中的 pushFrontViewController 方法来更改您的前视图控制器。

    例子

    self.revealViewController().pushFrontViewController(viewController, animated: true)
    

    要推送你的 TabbarViewcontroller,你应该在 Storyboard 中给它一个标识符。然后就可以使用了

    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)
    

    我没有测试这个

    【讨论】:

    • 但默认情况下它会转到第一个标签栏项目。如果通过单击 sw_rear 单元格行,我必须转到第 2 或第 3 个标签栏项目??
    【解决方案3】:

    将此代码添加到您的 SW_front ViewController

    -(void)viewWillAppear:(BOOL)animated{
        
       if revealViewController() != nil {
            menuButton.target = revealViewController()
            menuButton.action = "revealToggle:"
            view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
        }

    【讨论】:

    • 你能快速发送吗
    • 我已经在 viewWillAppear 中使用过了。但是当我从另一个页面设置 segue 到这个视图控制器时,返回主菜单按钮操作仍然不起作用
    • 使用导航控制器进行前视图
    猜你喜欢
    • 2011-01-04
    • 2012-03-22
    • 2021-12-22
    • 2017-10-04
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多