Обновить ViewController на TabBarController - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть tabBarController с тремя viewController на нем.Когда viewController 1 выбран, и я делаю 90 градусов, я скрываю tabBar, и я должен добавить представление текущего представления к tabBarController, в противном случае на месте tabBar появляется пустое пространство.

Если сейчас я поверну iPhone вранее ориентацию (вертикальное нормальное положение) я удаляю из представления просмотра, но представление не отображается на контроллере представления, я полагаю, что должно быть показано исходное представление (то, которое было до вызова addubview), фактически, если я выбрал второй viewController ипозже я возвращаюсь к viewController 1. представление выглядит идеально.

Я не понимаю, почему это происходит, не могли бы вы мне помочь?

Обновление:

Я думаю, чтопроблема в том, что я добавляю представление поверх tabbarcontroller (self.view addSubview: vista_AS.view]) Мне нужно, чтобы сделать панель вкладок не видимой, и позже, когда я удаляю это представление, tabbarcontroller каким-то образом теряет ссылку на представление viewcontroller 0,Чего я не понимаю, так это того, почему, когда я переключаюсь на viewcontroller 1, а затем снова на 0, представление в порядке.Есть ли какой-нибудь способ перезагрузить viewcontroller 0 view ??

Обновление 2 : Включен авторский код из предложенного изменения ответа

Это мой код:

if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation ==        UIInterfaceOrientationLandscapeRight)
{
   self.tabBar.hidden = TRUE;
   vista_AS = [delegate.tabBarController.viewControllers   objectAtIndex:0]; 
   vista_AS.view.frame = CGRectMake(0, 0, 320, 480);
   [self.view addSubview:vista_AS.view];
 }
 else { 
      if ( (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) ) 
     {
          [vista_AS.view removeFromSuperview]; 
          self.tabBar.hidden = FALSE; 
     }

Ответы [ 2 ]

0 голосов
/ 20 февраля 2011

Когда вы добавляете vista_AS как подпредставление tabBarController, вы изменяете родительское представление vista_AS на его новейшее родительское представление, поэтому разрываете связь с tabBarController.

Когда вы меняете ориентацию iPhone, вы удаляете vista_AS из его суперпредставления, но связь между tabBarController и вашим обзором все еще не работает. Я верю, что именно поэтому ты не видишь вид. Решение, вероятно, будет заключаться либо в переназначении родительского элемента vista_AS в tabBarController.view, либо в [tabBarController.view addSubview:vista_AS].

0 голосов
/ 18 февраля 2011

Похоже, что ваш контроллер вида 1 отключен, либо из-за перевыпуска, либо из-за памяти. Опубликуйте некоторый код, показывающий, как вы прикрепляете и удаляете вид, закрывающий панель вкладок. Это может содержать ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...