UISplitViewController detailViewController подпредставления неправильно изменяют размер при изменении ориентации - PullRequest
0 голосов
/ 30 июля 2010

HI, У меня в iPad есть следующая настройка:

UISplitViewController DetailSide-> SomeDetailViewController-> Добавлено подпредставление как [SomeDetailViewController.view addSubview: AnotherViewController.view]

  1. Теперь, после запуска, когда отображается «Представление AnotherViewController», его начальные размеры всегда совпадают с последней ориентацией (панорамирование / альбомная ориентация в построителе интерфейса). Я сохранил это представление XIB с независимо от текущей ориентации устройства. .

  2. Также При сбросе фрейма добавленного подпредставления (AnotherViewController.view), т. Е. A. In - [SomeDetailViewController viewDidLoad] проверка текущей ориентации устройства B. Установите фрейм AnotherViewController.view в соответствии с требуемым размером. , После этого он не изменяет размеры соответствующим образом (у меня правильно настроены пружины / распорки в окне авторазмера XIB) при изменении ориентации.

  3. После выполнения шага 2, описанного выше, я вижу, что около половины из окна AnotherViewController.view снизу не реагирует на любые прикосновения, похоже, из-за изменения в кадре координаты-респонденты перепутались.

  4. У меня действительно реализована функция "shouldAutorotateToInterfaceOrientation", возвращающая YES для всей ориентации во всех контроллерах моего вида.

ТИА.

Ответы [ 2 ]

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

Вы должны установить свойства автоматического изменения размера на AnotherViewController.view:

AnotherViewController.view.view.autoresizingMask = UIViewAutoresizingF FlexibleWidth |UIViewAutoresizingF flexHeight;

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

В XIB будет возможность изменить SPlitview Detail / Master в Inspector.Также, если вы добавите его как подпредставление, вы не сможете получить методы делегата splitview, для этого вам нужно будет добавить его в окно.Попробуйте удалить все элементы из окна, используя

[[[[UIAppDelegate window] подпредставления] objectAtIndex: 0] removeFromSuperview];self.appDelegate.splitViewControllerObject = [[UISplitViewController alloc] init];

UINavigationController * rootNav = [[UINavigationController alloc] initWithRootViewController: masterview];UINavigationController * detailNav = [[UINavigationController alloc] initWithRootViewController: detailview];

    self.appDelegate.splitViewControllerObject.viewControllers = [NSArray arrayWithObjects:rootNav, detailNav, nil];
    self.appDelegate.splitViewControllerObject.delegate = detailviewobj;

    [UIAppDelegate.window addSubview:self.appDelegate.splitViewControllerObject.view];

удачи ....

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