UISplitViewController Многоэлементные представления Сегментированный элемент управления - PullRequest
0 голосов
/ 28 июля 2011

Я работаю над приложением для iPad на контроллере с разделенным видом, где приложение будет оставаться в горизонтальной плоскости все время.Я бы хотел, чтобы контроллер корневого представления оставался списком, а контроллер подробного представления заменял 4 различных представления, управляемых UISegmentedControl.

Я следую за этим сообщением здесь UISegmentedControl Best Practice ,однако, когда я меняю свои контроллеры представления, они не помещаются должным образом в контроллер подробного просмотра, они обрезаются, как будто они пытаются рисовать для портретной ориентации ipad.

Если я полностью игнорирую сегментированный подход к управлениюи у меня есть подробное представление, размер представления правильно в подробном представлении, но как только я пытаюсь поменять их местами с сегментированным элементом управления, я сталкиваюсь с проблемой.

Есть ли способ сказать, что поменялись местами представленияправильно рисовать?

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Вы пробовали:

swappedInView.frame = detailController.view.bounds;

, когда вы звоните

[detailedController.view addSubview:swappedInView];

?

Их содержимое должно иметь свое поведение по изменению размера (наиболее легко в xcode / IB) установить соответствующим образом.

0 голосов
/ 28 июля 2011

Я также использую UISegmentControl, но добавляю свои виды программно.У меня мой вид по умолчанию (сегмент 0) загружен первым в viewDidLoad rootController.Затем, основываясь на том, какой сегмент нажат, я проверяю, инициализировано ли представление, если нет, инициализирую, затем добавляю его как подпредставление.Затем удалите другой вид.У меня была похожая статья на эту тему о том, как отслеживать это, которая может вам помочь, и у меня есть код из книги «Начинающая разработка для iPhone 4», которую я использовал для своего собственного приложения.Вот фрагмент кода, с которого можно начать, если вы хотите использовать этот подход:

if (self.yellowViewController.view.superview == nil)
{
    if (self.yellowViewController == nil)
    {
        YellowViewController *yellowController =
        [[YellowViewController alloc] initWithNibName:@"YellowView"
bundle:nil];
        self.yellowViewController = yellowController;
        [yellowController release];
    }
    [blueViewController.view removeFromSuperview];
    [self.view insertSubview:yellowViewController.view atIndex:0];
}
else
{
    if (self.blueViewController == nil)
    {
        BlueViewController *blueController =
        [[BlueViewController alloc] initWithNibName:@"BlueView"
bundle:nil];
        self.blueViewController = blueController;
        [blueController release];
    }
    [yellowViewController.view removeFromSuperview];
    [self.view insertSubview:blueViewController.view atIndex:0];
}

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

...