не может отменить выбор элемента tabBar - PullRequest
1 голос
/ 25 января 2012

У меня есть tabBar, инициализированный в xib-файле,

вопрос в том, я хочу отменить выбор элемент, который я коснулся ранее,

, но я не могу,

Я пытался

self.tabBar.selectedItem = 0;
self.tabBar.selectedItem = nil;

в любом месте, где смогу, но оно просто не работает,

как отменить выбор элемента tabBar после того, как я нажал на него?

Большое спасибо!

1 Ответ

1 голос
/ 13 июня 2012

Вот мое решение вашей проблемы ниже

.h

@interface DetailViewController : UIViewController <UITabBarDelegate>{

 //..
    IBOutlet UITabBar *myTabBar; //notice IBOutlet, hook this up to your tabBar in InterfaceBuilder

    }

    @property (strong, nonatomic) IBOutlet UITabBar *myTabBar;

.m

@synthesize myTabBar;

//..
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self configureView];

    actionTabBar.delegate = self; // This sets up tabbardelegate method
}

//..

#pragma myTableDelegates
// a Case for each button
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    switch (item.tag) {
        case 0:
        {  
            if (check for condition here) {
                 // do some tab stuff here, maybe load a view or something
            }
            else if (check for condition here) {
                // do some stuff here like unloading views etc
              [myTabBar setSelectedItem:nil]; //clears the previously selected cell
    // this means only one cell can be selected at a time.
            }

        }
            break;
        case 1:
        {
            NSLog(@"item 1 selected");
        }
            break;
        case 2:
        {
            NSLog(@"item 2 selected");
        }
            break;
        default:
            break;
    }

}

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

[myTabBar setSelectedItem:nil];

будет достаточно для того, чтобы вы очистили все выбранные ячейки в tabBar ... однако вы должны помнить, что myTabBar - это IBOutlet, поэтому вы должны подключить его в Интерфейсном Разработчике к имеющейся у вас панели вкладок, иначе вы можете сделать это в код, но звучит так, как будто вы работаете с файлом .xib, поэтому приведенное выше решение должно быть приятным.

Я не создавал и не запускал этот конкретный код, поэтому в нем может быть ошибка, дайте мне знать, если вам нужна дополнительная помощь.

В любом случае, я надеюсь, что это сработает для вас:)

...