假设我有一个带有5个ViewControllers的选项卡栏,以及一个左右菜单。
My deck 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。
假设我想用"watchlistController“tabBar按钮打开侧边菜单,我该怎么做呢?
哦,我对deckController用的是"IIViewDeckController“
谢谢
发布于 2014-06-10 20:18:00
您可以使用UITableControllerDelegate
和- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
方法阻止tabBarController显示与选项卡关联的视图/视图控制器
在您的代码中添加以下内容:
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;
}
这对你来说应该是有用的。
发布于 2021-09-01 05:59:31
Swift 5-从选项卡项中打开SideMenu单击
这个答案是@mbogh的答案的一个快速版本,并归功于他制作了这个trick.Please。按照以下步骤在选项卡项单击上打开侧边菜单。
//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
https://stackoverflow.com/questions/24097703
复制