Невыбранные панели вкладок представления Контроллеры не меняются при повороте устройства - PullRequest
0 голосов
/ 29 апреля 2011

У меня проблемы с совместимостью iPad с моим приложением.

У меня есть реализация настраиваемой панели вкладок, основанная на посте здесь http://www.wiredbob.com/blog/2009/4/20/iphone-tweetie-style-navigation-framework.html

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

Я пытался добавить

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.view.autoresizesSubviews = YES;

в представление контроллера вкладок.

Я добавил похожий код в методы viewDidLoad представлений вкладки.

Я пытался заставить willRotateToInterfaceOrientation вызывать все методы ротации подпредставлений, но все же не повезло.

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

Снимок экрана 1 - Rotating the selected tab works fine see below for what the other tabs look like Снимок экрана Screenshot of the result of rotating and selected a different tab

1 Ответ

0 голосов
/ 09 мая 2011

Хорошо, я решил эту проблему.

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

О, а при добавлении представлений в качестве вложенных представлений всегда используйте метод underSubView -

[self.view insertSubview:viewController.view belowSubview:tabBar];

-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[(ViewControllerClass *)[viewControllers objectAtIndex:0] changeFrameSize:[NSNumber numberWithFloat:self.selectedViewController.view.bounds.size.width] height:[NSNumber numberWithFloat:self.selectedViewController.view.bounds.size.height]];
[(ViewControllerClass *)[viewControllers objectAtIndex:1] changeFrameSize:[NSNumber numberWithFloat:self.selectedViewController.view.bounds.size.width] height:[NSNumber numberWithFloat:self.selectedViewController.view.bounds.size.height]];
[(ViewControllerClass *)[viewControllers objectAtIndex:2] changeFrameSize:[NSNumber numberWithFloat:self.selectedViewController.view.bounds.size.width] height:[NSNumber numberWithFloat:self.selectedViewController.view.bounds.size.height]];
}

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

...