感谢您阅读我的问题。
当用户单击索引为 4 的选项卡时,我试图实现一个弹出菜单。所以我试图阻止选项卡栏在按下索引 4 时切换视图控制器。
这是我的代码:
- (BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
if(viewController == [tabBarController.viewControllers objectAtIndex:4]){
NSLog(@"NO");
return NO;
}else{
NSLog(@"YES");
return YES;
}
}
我已经实现了andUITabBarControllerDelegate
并且它可以工作,但只有一次。self.delegate = self;
viewDidLoad
当我单击索引 4 选项卡时,菜单显示并且选项卡栏不会切换视图(GREAT),但是当我再次单击它时,即使我得到日志“否”,视图也会发生变化。这里可能是什么问题?
感谢您的任何建议!
解决了
感谢 Kasaname 在下面的回答,我通过添加 selectedindex 并将其设置为标志索引(prevtab)来解决它。我将 prevtab 更改为最后选择的选项卡的索引,当用户选择索引 4 时除外。我的最终代码:
- (BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
if(viewController == [tabBarController.viewControllers objectAtIndex:4]){
self.selectedIndex = prevTab; //only change in this method
return NO;
}else{
return YES;
}
}