Пользовательский UIImagePicker удаляет панель навигации при нажатии пользовательского представления

#objective-c #cocoa-touch #uiimagepickercontroller

#objective-c #cocoa-touch #uiimagepickercontroller

Вопрос:

В моем проекте мне нужно подключить другой uiviewcontroller к концу цепочки выбора изображений.

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo 
{
uploadPhotoViewController * newView = [[uploadPhotoViewController alloc] initWithNibName:@"uploadPhotoViewController" bundle:nil];
    newView.contest = received;
    newView.receivedImage = img;
    newView.parentImagePicker = picker; // this doesn't help
    [picker pushViewController:newView animated:YES];

}
  

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

 -(void)viewWillAppear:(BOOL)animated 
{
    [super viewWillAppear:animated];
    self.wantsFullScreenLayout = FALSE;
    self.navigatioController.navigationBar.hidden = false;
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
    [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];
}
  

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

     self.parentImagePicker.navigationBar.hidden = false;
    self.parentImagePicker.navigationBar.barStyle = UIBarStyleBlackTranslucent
  

Но это тоже не помогло. Итак, я в тупике. Это какой-то ivar или что-то, что позволит мне обратиться к сборщику?

Ответ №1:

О, круто, я понял это. во время вызова

 self.navigatioController.navigationBar.hidden = false;
  

не работает,

 [self.navigationController setNavigationBarHidden:NO];
  

это так.