0

Я нашел варианты вариантов для этого вопроса, но просто хотел получить некоторую ясность, поскольку я не могу заставить себя работать.Скрывающая панель Bar Controller On A Subview

У меня есть TabBarController (TBC), который содержит несколько UIViewController s (каждая вкладка). На одном из этих UIViewController с (MainMenu), я пытаюсь добавить еще один UIViewController (game1) как подвид:

[self.view addSubview:game1.view]; 

Теперь проблема с этим является то, что он принимает TBC с ним, так что я пытался скрыть это с помощью:

self.hidesBottomBarWhenPushed = YES; //< (In the game1.m ViewDidLoad method) 

и

game1.hidesBottomBarWhenPushed = YES; //< (In the mainMenu.m after I initialise game1) 

Я предполагаю, что это связано с меню никогда не толкают, как я использую addSubview подход?

Первоначально я использовал presentModalViewController подход, но кадр передается на новый взгляд, тем самым вызывая расположение UI будет компенсирована/увеличено.

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

Благодаря передовой, Эллиот

ответ

0

hidesBottomBarWhenPushed актуальна только тогда, когда вы нажимаете контроллер представления на UINavigationController стека. Что вы делаете с addSubview:, так это то, что вы просто добавляете представление game1 в представление текущего вида контроллера. Это совсем не так, и UIKit не справится с этим.

Вы должны поставить UINavigationController в качестве контроллера для просмотра вкладки, а затем нажмите на контроллер game1 вида что-то вроде:

[self.navigationController pushViewController:game1 animated:YES]; 

вместо addSubview:. Затем это будет работать с hidesBottomBarWhenPushed. Обратите внимание, однако, что лучше всего установить hidesBottomBarWhenPushed в вашем методе init любого класса game1, а не в viewDidLoad.

+0

Таким образом, вместо того, чтобы иметь множество UIViewControllers для элементов табуляции (mainMenu и т. Д.), Это должны быть NavigationControllers? –

+0

Если вы хотите нажать на другие контроллеры представлений, то да, это был бы обычный способ обойти все. Вы можете скрыть фактическую панель навигации на «домашнем экране», если хотите, а затем просто показать ее, когда вы нажимаете контроллер вида. Это может быть то, что вы ищете. – mattjgalloway

+0

Извините за медленный ответ, переехал дом по выходным! Хорошо спасибо за помощь, я обновлю свой код и попытаюсь структурировать его в этом формате, чтобы узнать, могу ли я получить желаемый аффект. Все, что я буквально хотел, - это показать представление без TabBar, потому что, когда дело доходит до показа игровых экранов, я больше не хочу, чтобы пользователи могли перемещаться по меню. Проблема заключалась в том, что макет nib показывался вне центра из-за изменения размеров экрана, когда я нажимал на панель с вкладками без вкладок на панель вкладок. –