Переключение видов на вкладке UITabBar с использованием сегментированного элемента управления - PullRequest
0 голосов
/ 02 июня 2011

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

Вот как я переключаю взгляды:

//Switch Views
- (IBAction)segmentSwitch:(id)sender
   {
   if([sender selectedSegmentIndex] == 0)
   {
      MediaViewController *vc = [[MediaViewController alloc] initWithNibName: @"MediaView" bundle:nil];
      vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
      [self presentModalViewController: vc animated: YES];
   }
   else if([sender selectedSegmentIndex] == 1)
   {
      MediaViewControllerTwo*v2 = [[MediaViewControllerTwo alloc] initWithNibName: @"MediaViewTwo" bundle:nil];
      v2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
      [self presentModalViewController: v2 animated: YES];
   }
}

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Причина, по которой ваш вид исчезает, заключается в том, что поверх него отображается контроллер модального вида:

    [self presentModalViewController: v2 animated: YES];

Как вы знаете, контроллер модального представления занимает весь экран пространстводля этого.

Что вы пытаетесь выполнить с помощью сегментированного элемента управления?

РЕДАКТИРОВАТЬ: для изменения текущего представления, отображаемого в UITabBar, у вас есть несколько вариантов.Один просто добавляет подпредставление к текущему представлению;в вашем контроллере представления выполните:

[self.view addSubview: vc.view];
[vc viewWillAppear:NO];
[vc viewDidAppear:NO];

вызовы viewWillAppear и viewDidAppear, в этом случае среда не вызовет их для вас.

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

Прочитав ваш комментарий, вы можете заменить одну таблицу другой.Или, лучше, добавьте их обоих как подпредставление (полный кадр) и просто скройте один или другой в соответствии с выбором сегментированного элемента управления.

0 голосов
/ 02 июня 2011

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

...