ContentSizeForViewInPopover does Подпредставления UIPopoverController w/UINavigationController не работает над Родителем

У меня есть UIPopoverController с подклассом UINavigationController. И родительские и дочерние представления являются UITableviews.

Когда я называю родительское представление первоначально с contentSizeForViewInPopover = (320,480), это работает отлично.

Когда я нажимаю в дочернее представление, я изменяю размер легкой сдобы к contentSizeForViewInPopover = (320,780)

Когда возврат назад к родительскому представлению я не могу заставить легкую сдобу изменять размер назад к contentSizeForViewInPopover = (320,480). легкая сдоба остается в (320,780) размер.

Попытка всего, но просто пропавшие без вести чего-то. Кто-либо знает, как изменяют размер представления с UIPopoverControllers в вышеупомянутом сценарии?

Заранее спасибо!!

16
задан skaffman 2 August 2010 в 18:45
поделиться

2 ответа

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


-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    self.contentSizeForViewInPopover = CGSizeMake(320, 444); //Set your own size
}

Надеюсь, это вам поможет.

1
ответ дан 30 November 2019 в 16:18
поделиться

Свойство contentSizeForViewInPopover контроллера представления устанавливает только размер по умолчанию (начальный) для содержащего UIPopoverController . Чтобы изменить размер UIPopoverController в произвольное время, необходимо установить его свойство popoverContentSize . Обратите внимание, что popoverContentSize является свойством UIPopoverController и не контроллера представления (так что вам, вероятно, понадобится ссылка на контроллер всплывающего окна).

Чтобы сбрасывать размер всплывающего окна каждый раз, когда контроллер представления становится контроллером вида сверху UINavigationController , вы можете использовать методы протокола UINavigationControllerDelegate :

navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if (viewController == viewControllerToResize) {
        referenceToUIPopoverController.popoverContentSize = CGSizeMake(320,480);
    }
}
24
ответ дан 30 November 2019 в 16:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: