Неверный размер / ориентация кадра после переключения с UINavigationController на UISplitViewController - PullRequest
0 голосов
/ 26 сентября 2010

Я пытаюсь использовать UISplitViewController только для одной вкладки в моем приложении (другие используют Navigation Controller и другие ViewController).

Я добавил SplitViewController в MainWindow.xib (единственный способЯ мог бы заставить его работать), но я не добавляю его в окно при вызове didFinishLaunchingWithOptions, как это обычно бывает, поэтому SplitViewController остается скрытым.

Когда я нажимаю на вкладку, я вызываю некоторый код вокно делегата, чтобы скрыть контроллер навигации и установить SplitViewController на место с помощью:

[window addSubview: splitViewController.view];

Если iPad находится в ландшафтном режиме, SplitViewController по-прежнему считает, что этов портретном режиме по какой-то причине и рамка для контроллера Root и Detail View неверна.Если я начну вращать iPad, то все будет нормально.Это просто первоначальный вызов, который является неправильным.

Похоже, SplitViewController не уведомляется о начальном повороте ландшафта, потому что он скрыт.

Во время первого вызова прямоугольник кадра равен 320 x 980Root Controller, если iPad поворачивается в книжный, а затем обратно в альбомный режим, прямоугольник рамки становится 320 x 724.

Проблема с неправильным размером состоит в том, что он не отображает последние элементы в TableView.в корневом контроллере.

Я пытался изменить размер кадра в ViewDidLoad и ViewWillAppear корневого контроллера, но ничего не изменилось.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 10 января 2011

Странно, исправление размера моего detailViewController внутри метода viewDidLoad устранило эту проблему.

self.view.frame = CGRectMake(321, 0, 703, 699);

У меня такая же точная конфигурация: tabBarController как rootController с одним splitViewController и несколькими viewController.

0 голосов
/ 20 октября 2010

Может быть, это вам немного поможет.

У меня есть приложение для iPad с панелью вкладок с несколькими вкладками / страницами. На одной из страниц используется контроллер разделенного вида, а в левом представлении также содержится контроллер навигации. Аспекты вращения, кажется, работают нормально. Вот как я это настроил:

AppDelegate

MyLeftViewController *viewController = [[MyLeftViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[viewController release];

MyRightViewController *rightView = [[MyRightViewController alloc] init];

UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:navController, rightView, nil];

[rightView release];   
[navController release];

splitViewController.delegate = rightView;
[viewControllersArray addObject:splitViewController];    
[splitViewController release];

...add other view controllers to viewControllersArray...

tabBarController.viewControllers = viewControllersArray;
[viewControllersArray release];
[window addSubview:tabBarController.view];    
...