2013-09-16 4 views
3

У меня есть UIImagePickerController как контроллер просмотра содержимого для UIPopoverController. Мне нужно определить, когда popover только что закончил представлен (только что появился). Для этого UIPopoverController не имеет делегата. Я не могу найти способ обнаружить UIImagePickerController. (Это для iPad)обнаруживает, когда UIPopoverController завершен, представлен UIImageViewcontroller

Любые предложения?

// UIImagePickerController let's the user choose an image. 
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
imagePicker.delegate = self; 
self.popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
self.popover.delegate = self; 
[self.popover presentPopoverFromBarButtonItem:self.openPhotosButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
+0

Вы ищете что-то вроде viewDidLoad или viewDidAppear? (методы, которые вы переопределяете при реализации UIViewController). – kmorris

+0

Да, но контроллер содержимого содержимого popover в этом случае является UIImagePickerController. – user523234

+0

Я вижу ... вы не можете переопределить UIImagePickerController, поэтому подход viewDidLoad не будет работать. Чего вы пытаетесь достичь? Это может быть другой способ сделать это. – kmorris

ответ

9

UIImagePickerDelegate также UINavigationControllerDelegate.

Ваш класс должен реализовывать UINavigationControllerDelegate и включают в себя следующее:

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    // [navigationController setNavigationBarHidden:YES]; 
     [[UIApplication sharedApplication] setStatusBarHidden:YES]; // This one works for me: OP 
    } 

Я проверил это и скрывает панель навигации. Я не уверен, что если это так конфликтует с HIG.

+0

Этот делегат работает отлично. Он вызывается, когда представлен ImagePickerView и при записи на любые альбомы. Таким образом, это подходящее место, чтобы скрыть строку состояния. Благодарю. – user523234

+0

Пробовал несколько других решений, но все не очень хорошо работает. Это потрясающе! – Rick

1

Thise должно помочь:

  • UIImagePickerControllerDelegate и imagePickerController: didFinishPickingMediaWithInfo:
  • UIPopoverControllerDelegate popoverControllerDidDismissPopover

У вас есть делегаты для обоих

+0

Мне нужно обнаружить, когда popover только что закончил показ ... – user523234

+0

Ох - как вы его показываете - можете ли вы обновить вопрос с кодом того, как вы его показываете? Вы делаете анимацию или что-то вроде? –

Смежные вопросы