размер кадра подробного представления splitviewcontroller не изменяется в ios4.2 - PullRequest
3 голосов
/ 17 декабря 2010

Я реализую splitviewcontroller с двумя основными видами представления и подробным представлением в моем приложении ipad. При изменении ориентации ipad с книжной на альбомную, мне нужно скрыть главный вид и изменить размер кадра подробного вида, чтобы он отображался на полном экране. Для этого я использую этот код.

    - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
       //adjust master view
       UIViewController *master = [self.splitViewController.viewControllers objectAtIndex:0];
       UIViewController *detail = [self.splitViewController.viewControllers objectAtIndex:1];
       CGRect t = master.view.frame;
       t.size.width = 0;
       t.size.height = 0;
       t.origin.x = 0;
       t.origin.y = 0;
       [master.view setHidden:YES];
       [master.view setFrame:t];

       //adjust detail view
       CGRect f = detail.view.frame;
       f.size.width = 1004;
       f.size.height = 768;
       f.origin.x = 0;
       f.origin.y = 0;

       [detail.view setFrame:f];

}

Этот код прекрасно работает на ios3.2, но не работает на ios4.2. Главный вид скрыт в ios4.2, но размер кадра подробного вида не изменяется.

Пожалуйста, помогите мне. Спасибо Шрути

1 Ответ

0 голосов
/ 22 декабря 2010

Альтернатива, которую я обнаружил в своей проблеме, состоит в том, что вместо того, чтобы скрывать главный вид и изменять размер кадра детального вида при вращении, я просто представил класс, содержащий подробный вид, в качестве модального вида.Ранее я отталкивал его от предыдущего класса.Я также добавил панель навигации с кнопкой «Готово», чтобы закрыть модальное представление.Эта штука сработала для меня.

ListingViewController *viewController = [[ListingViewController alloc] initWithNibName:@"ListingViewController" bundle:[NSBundle mainBundle]];  
UINavigationController *modalVC = [[UINavigationController alloc]initWithRootViewController:viewController]; // to add navigation bar
modalVC.navigationBar.barStyle = UIBarStyleBlackOpaque;
[self.navigationController presentModalViewController:modalVC animated:YES];
[modalVC release];
[viewController release];
...