Отмените выбор или отмените выбор всех вкладок на панели вкладок в iOS 5 - PullRequest
4 голосов
/ 27 марта 2012

Я новичок в разработке для iOS, и я начал с IOS 5 напрямую.Я создал раскадровку, которая состоит из контроллера tabview в качестве его rootviewcontroller.Я поместил 2 вкладки в него.

Я хочу отменить выбор / отменить выбор всех вкладок изначально.Как мне это сделать?Я пробовал следующее

 UIView *view = [[UIView alloc]initWithNibName:@"view" bundle:[NSBundle mainBundle]];
    [self.tabBarController setSelectedViewController:nil];
    [self.tabBarController setSelectedViewController:view];

, где я добавил представление с идентификатором "view".

Но это не сработало, выдает ошибку:

 unrecognized selector sent to instance

Я также попробовал следующее

[self.tabBarController.tabBar setSelectedItem:nil];

, но там написано

«NSInternalInconsistencyException», причина: «Не допускается прямое изменение панели вкладок, управляемой контроллером панели вкладок.'

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

Ответы [ 5 ]

8 голосов
/ 13 июня 2012

Я использую это, чтобы очистить любую выбранную вкладку BarItems

[myTabBar setSelectedItem:nil];
4 голосов
/ 11 июля 2012

Старый вопрос. Просто для записи, вы не можете отменить выбор всех вкладок, если панель вкладок управляется TabBarController. Метод:

[self.tabBar setSelectedItem:nil];

Работает только , если панель вкладок не управляется из контроллера панели вкладок. Если это так, отменить выбор всех вкладок невозможно, всегда должна быть выбрана одна.

1 голос
/ 17 октября 2016

Это немного глупо.Но я просто установил цвет оттенка в -viewWillAppear на серый, когда хотел, чтобы он выглядел так, как будто не было выделенного фрагмента, и затем установил цвет оттенка обратно на «выбранный» цвет, когда я хочу показать выделение.

// since we cant turn off tabbar selection, change the color to make
// it look like nothing was selected.
self.tabBarController.tabBar.tintColor = [UIColor grayColor];  
-----------
// make sure tintcolor is turned on (just in case another module turned it off
self.tabBarController.tabBar.tintColor = self.view.tintColor;
0 голосов
/ 07 февраля 2017

Вам необходимо использовать UITabBar.Not UITabBarController

отмените выбор или отмените выбор элемента панели вкладок swift 3.0

tabbar_Main.selectedItem = nil
0 голосов
/ 17 июня 2013

Я нашел решение, которое, вероятно, не лучший способ сделать это, но оно сработало для меня ([self.tabBar setSelectedItem: nil]; нет). Я помещаю свое представление вкладки в родительское представление (myTabBarViewContainer), а затем, когда я хочу отменить выбор своих элементов, я вызываю removeFromSuperview в родительском представлении и повторно инициирую его:

[self.myTabBarViewContainer.view removeFromSuperview];

Тогда заново его и Вуаля!

Не очень красиво, но работает ...

...