【问题标题】:MFSideMenu in secondary viewController辅助视图控制器中的 MFSideMenu
【发布时间】:2015-04-22 08:02:13
【问题描述】:

我需要在我的应用程序的所有页面中使用 MFSideMenu。现在可以在第一个 viewController 中使用,但是当我在菜单中选择功能时,该按钮出现在 NavigationBar 中但它不起作用...

如何使用这个对象?

我添加了我所有的 .h

- (IBAction)showRightMenuPressed:(id)sender;

在我所有的 .m 中

    - (IBAction)showRightMenuPressed:(id)sender {
    [self.menuContainerViewController toggleRightSideMenuCompletion:nil];
   }

【问题讨论】:

    标签: objective-c navigationbar


    【解决方案1】:

    MFSideMenuContainerViewController 具有 leftMenuViewControllercenterViewController 等属性...您所要做的就是放置一个 menuviewController,因为它是 LeftMenuViewcontroller 和一个 navigationController因为它是 centerViewController

      MenuViewController *VC = [[MenuViewController alloc] init];
      ListViewController *ListVC = [[ListViewController alloc] init];
      TBNavigationController *NavigationVC = [[TBNavigationController alloc] initWithRootViewController:ListVC];
    
      /*
       Set the NavigationControllers as the ViewControllers of MFSideMenuContainer and make the MFSideMenuContainer as window's rootview.
       */
    
      MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                      containerWithCenterViewController:NavigationVC
                                                      leftMenuViewController:VC rightMenuViewController:nil];
      [[AppDelegate appDelegate].window setRootViewController:container];
    

    现在继续根据需要向 navigationController 添加尽可能多的 VC。

    【讨论】:

    • 很抱歉,这是我的第二个应用程序,也是我第一个使用此对象的应用程序...我需要在哪里添加此代码?在我的 appDelegate 中?
    • 您也可以在 appdelegate 中添加它,在该代码的最后一行添加一个小技巧。
    • 在我的 appDelegate 我有这个代码...我知道我只需要你的代码的最后一行.. 但是使用“[self.window setRootViewController:container] 不起作用...跨度>
    • self.window.rootViewController=container;在 didFinishLaunchingWithOptions 中应该可以工作
    • 它不起作用!你说我可以在 appDelegate 中添加......但是......你在哪里添加这段代码?在 viewDidLoad 中的所有 viewController 中?
    【解决方案2】:
    -(IBAction)btnClkSide:(id)sender{
        [self.menuContainerViewController toggleLeftSideMenuCompletion:^{
            [self setupMenuBarButtonItems];
        }];
        //    SlideMenuOpem;
    }
    - (void)setupMenuBarButtonItems {
        self.navigationItem.rightBarButtonItem = [self rightMenuBarButtonItem];
        if(self.menuContainerViewController.menuState == MFSideMenuStateClosed &&
           ![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) {
            self.navigationItem.leftBarButtonItem = [self backBarButtonItem];
        } else {
            self.navigationItem.leftBarButtonItem = [self leftMenuBarButtonItem];
        }
    }
    
    - (UIBarButtonItem *)leftMenuBarButtonItem {
        return [[UIBarButtonItem alloc]
                initWithImage:[UIImage imageNamed:@"menu-icon.png"] style:UIBarButtonItemStyleBordered
                target:self
                action:@selector(leftSideMenuButtonPressed:)];
    }
    
    - (UIBarButtonItem *)rightMenuBarButtonItem {
        return [[UIBarButtonItem alloc]
                initWithImage:[UIImage imageNamed:@"menu-icon.png"] style:UIBarButtonItemStyleBordered
                target:self
                action:@selector(rightSideMenuButtonPressed:)];
    }
    

    【讨论】:

    • 很抱歉,这是我的第二个应用程序,也是我第一次使用此对象...我需要在哪里添加此代码?
    • 在点击 uibutton 动作时使用“btnClkSide”方法
    猜你喜欢
    • 1970-01-01
    • 2010-09-14
    • 2011-02-19
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    相关资源
    最近更新 更多