感谢阅读我的问题。
我正在尝试在用户单击索引为4的选项卡时实现弹出菜单。因此,我正在尝试阻止当按下索引4时,选项卡栏切换视图控制器。
这是我的代码:
- (BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
if(viewController == [tabBarController.viewControllers objectAtIndex:4]){
NSLog(@"NO");
return NO;
}else{
NSLog(@"YES");
return YES;
}
}
我已经实现了UITabBarControllerDelegate
和self.delegate = self;
在viewDidLoad
中,并且它可以工作,但只有一次。
当我点击第4个选项卡时,菜单出现并且标签栏不会切换视图(太好了),但是当我再次点击它时,即使我得到“NO”日志,视图也会更改。这里可能有什么问题?
感谢您的任何建议!
已解决
由于下面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;
}
}
在第四个选项卡中空白的ViewController是什么意思?
- Abhishek Bedi