Полноэкранный iPad UIPopoverController - PullRequest
1 голос
/ 11 октября 2011

У меня есть приложение для iPad, которое отображает от UIImagePicker до UIPopoverController. Я хотел бы сделать popovercontroller полноэкранным (или хотя бы настолько большим, насколько это возможно).

Я использую метод presentPopoverFromRect с новым CGRect, который я установил на различные ширины и высоты без результата. Источник средства выбора изображения - UIImagePickerControllerSourceTypePhotoLibrary.

UIPopoverController* popoverController = [[UIPopoverController alloc] initWithContentViewController:photoPicker];
popoverController.delegate = self;
popoverController presentPopoverFromRect:CGRectMake(0, 0, 2500, 2500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

Могу ли я сделать это в полноэкранном режиме? А как насчет sourcetype UIImagePickerControllerSourceTypeCamera?

Ответы [ 3 ]

1 голос
/ 15 марта 2013

Я только что проверил, что этот код работает на iPad 1 и iPad 4 (то есть он поддерживается в iOS 5.1.1 - 6.1.2)

popover = [[UIPopoverController alloc] initWithContentViewController:yourVC];
    [popover setPopoverContentSize:CGSizeMake(1024, 1024)];

    [popover presentPopoverFromRect:CGRectZero
                                       inView:appDelegate.splitViewController.view
                     permittedArrowDirections:UIPopoverArrowDirectionAny
                                     animated:YES];

Вы должны заметить, что отклонить поповер сложно, так как он «заполнит экран» в портретной или альбомной ориентации. У меня есть эти методы в моем appDelegate.splitViewController:

- (BOOL)shouldAutomaticallyForwardRotationMethods {

    NSLog(@"MG - shouldAutomaticallyForwardRotationMethods");
    return YES;
}

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {

    NSLog(@"MG - automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers");
    return YES;
}

Просто разверните / скройте кнопку в углу вашего ВК, чтобы отклонить это:

[popover dismissPopoverAnimated:YES];

Следует также отметить, что «popover» является сильным свойством, иначе вы получите сообщение об освобождении, когда оно попытается представить.

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

Чтобы установить размер поповера, вы можете переопределить -contentSizeForViewInPopover в viewcontroller, который помещен в popovercontroller.

presentPopoverFromRect используется для определения кадра, из которого будет открыт поповер, а не для установки его размера.

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

Вы могли бы также хотеть ModalViewController вместо этого?У этого есть 4 различных стиля представления (один из них полноэкранный)

Хорошим примером является прототип, написанный в этом вопросе: presentModalViewController fullscreenmode проблема (он находится в // --- РЕДАКТИРОВАТЬ --- //)

Проверьте, если это что-то для вас.

...