Спасибо, что прочитал мой вопрос.
Я пытаюсь реализовать всплывающее меню, когда пользователь нажимает на вкладку с индексом 4. Поэтому я пытаюсь не допустить, чтобы панель управления переключала viewcontroller при нажатии индекса 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, меню отображается, и панель не переключает вид (БОЛЬШОЙ), но когда я нажимаю на нее снова, просмотр изменяется, даже если я получаю журнал "НЕТ". Что может быть проблемой здесь?
Спасибо за любые предложения!
решаемые
Благодаря ответу Kasaname ниже я решил его, добавив selectindex и установив его в индекс флага (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;
}
}