2012-05-08 2 views
0

Эй, ребята, я пытаюсь представить modal view controller внутри приложения с контроллером панели вкладок. Проблема в том, что каждый раз, когда представлен новый вид, он поверх моей панели вкладок.Как представитьModalViewController, не отбрасывая TabBarController

Мне нужно сохранить панель вкладок, даже если представление представлено. Как и приложение Google Maps, его панель инструментов находится внизу экрана.

Как я могу это сделать?

Спасибо

+0

Вкладка скрывается, только если вы укажете bottomBar.hidden = YES при нажатии нового модального VieController. Не могли бы вы отправить код своего приложения, где вы устанавливаете табулатуру и код, где вы публикуете новый контроллер модального представления? –

+0

Это неправда. Модальный контроллер просмотра не помещается в стек навигации, а hidesBottomBarWhenPushed применяется только в этом сценарии. – jmstone617

+0

Могу ли я добавить этот эффект без использования модального просмотра? –

ответ

-1

Я думаю, вам нужно добавить UITabBar модальному зрения и осуществлять/дублировать кнопки и функциональные возможности, что ваш главный бар имеет. Суть модального окна заключается в том, что он имеет полный контроль до тех пор, пока он не будет отклонен.

Вы можете попробовать разместить свой UITabBarController в NavBarController, но я не уверен, что это сработает.

UITabBarController -> NavBarController -> Модальные Просмотр

1

По умолчанию модальный контроллер представления призван занять весь экран (на iPhone/IPod, по крайней мере). Из-за этого он охватывает все, что у вас есть на экране в то время.

0

Контроллер вида, представленный через модальный сегмент, предназначен для самостоятельного проживания. Если вы хотите сохранить свою навигацию и TabBar, просто используйте push-сегу, чтобы представить новый ViewController. Не забудьте использовать этот тип segue, ваш контроллер представления должен быть частью UINavigationController.

Используйте это, чтобы нажать ViewController. Если это UINavigationController, он будет сам подключать свой связанный RootViewController.

Создать ViewController нажать: (с помощью раскадровки)

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; 

или (с помощью кода/перья)

LoginViewController *viewController = [[LoginViewController alloc] init]; //initWithNibNamed in case you are using nibs. 
//in case you want to start a new Navigation: UINavigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 

и отталкиваться:

[self.navigationController pushViewController:vc animated:true]; 

Кроме того, если вы используют раскадровки для segues, которые вы можете использовать для этого, чтобы сделать все. Не забудьте установить идентификатор segue.

[self performSegueWithIdentifier:@"pushLoginViewController" sender:self]; //Segue needs to exist and to be linked with the performing controller. Only use this if you need to trigger the segue with coder rather than an interface object. 

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"pushLiftDetail"]) { 
     [[segue.destinationViewController someMethod:]]; 
     segue.destinationViewController.someProperty = x; 
    } 
} 
+0

О, боже, мне нужно посмотреть даты, прежде чем отвечать. – drUniversalis

Смежные вопросы