Сделайте кнопку панели вкладок, чтобы открыть меню справа

Скажем, у меня есть панель вкладок с 5 ViewControllers, а также левым и правым меню.

Моя колода ViewController содержит панель вкладок как центр ViewController:

  self.tabBarController.viewControllers = @[UINAVIGATIONCONTROLLER(feedController),
                                              UINAVIGATIONCONTROLLER(myProfileController),
                                              UINAVIGATIONCONTROLLER(topTradersController),
                                              UINAVIGATIONCONTROLLER(stocksListController),
                                            //  UINAVIGATIONCONTROLLER(watchlistController),
                                            ];





    self.deckController =  [[STViewDeckController alloc] initWithCenterViewController:self.tabBarController
                                                                   leftViewController:settingsController
                                                                  rightViewController:watchlistController];

Я хотел бы сделать так, чтобы кнопки панели вкладок открывали меню справа, а не заставляли tabBar толкать этот ViewController.

Скажем, я хотел бы, чтобы кнопка tabBar "listController"открыла боковое меню. Как я могу это сделать?

О, и я использую "IIViewDeckController" для deckController

Спасибо

2 ответа

Вы можете запретить tabBarController показывать view/viewController, связанный с вкладкой, используяUITableControllerDelegate и метод - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

Добавьте следующее в ваш код:

self.tabBarController.delegate = self;

а затем реализовать это:

#pragma mark - UITabBarControllerDelegate

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    BOOL isLeft = YES;
    if (isLeft) {
        [self.deckController openLeftView];
    }
    else {
        [self.deckController openRightView];
    }

    return NO;
}

Это должно помочь вам.

Swift 5 - открыть SideMenu из щелчка по элементу панели вкладок

Этот ответ является быстрой версией ответа @mbogh, и ему принадлежит заслуга в создании этого трюка. Выполните следующие действия, чтобы открыть боковое меню при нажатии элемента на панели вкладок.

      //make your controller subclass of UITabBarControllerDelegate
extension HomeVC: UITabBarControllerDelegate {
    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        self.openSideMenu()
        return false
    }
}

//triger tabbbar delegate from  your controller's ViewDidLoad()
self.tabBarController?.delegate = self
Другие вопросы по тегам