Проблема с уменьшением ширины UIPopOverController, когда навигационный контроллер выдвигает новый вид (включая снимки экрана) - PullRequest
1 голос
/ 29 апреля 2011

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

self.studyPicker = [[[StudyPickerController alloc] initWithStudyArray:self.studyArray ViewNum:butto.tag] autorelease];

    UINavigationController *navController = [[UINavigationController alloc]  initWithRootViewController:self.studyPicker];

    _studyPicker.delegate = self;
    self.studyPickerPopover = [[[UIPopoverController alloc] initWithContentViewController:navController] autorelease];               

    [self.studyPickerPopover presentPopoverFromRect:CGRectMake(955,60, 22,10) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

Который прекрасно работает. Я получаю хороший большой контроллер popover, который отображает мои данные tableView именно так, как мне нужно. Так же, как FYI, в моем методе StudyDickerController viewDidLoad я также устанавливаю это:

    self.contentSizeForViewInPopover = CGSizeMake(1000.0, 610.0);

Что позволяет мне сделать размер моего tableView красивым и большим. Проблема, с которой я сталкиваюсь , связана с выбором строки в этом первом табличном представлении. NavigationController выдвигает новый вид просто отлично, но тогда ширина моего контроллера popover уменьшается вдвое! Это не имеет никакого смысла! Я перепробовал все и не могу понять, что происходит. В новом представлении, называемом ScreenView, он также имеет такой же код в viewDidLoad:

    self.contentSizeForViewInPopover = CGSizeMake(1000.0, 610.0);

Интересное наблюдение , которое я сделал, но не знаю, что с ним делать, заключается в том, что если я возьму код contentForSize из представления Second в tableView или тот, который я пытаюсь протолкнуть внутрь контроллера, когда он толкает, он снова разрезается пополам, до ширины стандартного контроллера поповер, который вы видите, как Safari. Но при добавлении этого кода его ширина увеличивается в 2 раза, как будто они склеены вместе или что-то в этом роде, но он все же уже, чем оригинальная ширина.

Я не знаю, что здесь происходит, надеюсь, кто-нибудь может мне помочь!

Спасибо

Вот изображение ширины, которое должно остаться: enter image description here

И вот оно после того, как оно выдвигает новый взгляд: enter image description here

1 Ответ

2 голосов
/ 11 октября 2011

Для каждого представления, которое вы представляете в UIPopoverController, установите свойство contentSizeForViewInPopover

Например:

myViewController.contentSizeForViewInPopover = CGSize(120.0f, 320.0f);

Вам необходимо будет учесть размер UINavigationBar (который вы получаете от UINavigationBar) внутри UIPopoverController, но в целом, который контролирует растяжение и сжатие UIPopoverController.

...