Вид наложения не загружен в приложении customTabBar - PullRequest
0 голосов
/ 04 августа 2011

Мое приложение customTabBar загружает контроллер представления, когда нажата одна из кнопок панели вкладок. Одна из кнопок панели вкладок открывает UIImagePickerController с оверлеем сверху, но кнопки в оверлее не отображаются - на самом деле это наложение Nil.

Последовательность следующая:

  1. AppDelegate выделяет и инициализирует различные контроллеры для каждой кнопки панели пользовательских вкладок в applicationDidFinishLaunching;

  2. cameraTabViewController выделяет и инициализирует различные контроллеры подпредставления, включая subViewCamera, в своем методе init:

    self.subViewCamera = [[ModalCameraViewController alloc] init];
    
  3. Когда нажата кнопка панели вкладок камеры, контроллер соответствующего вида вызывает

    (void)viewDidAppear:(BOOL)animated {
    [self openSubViewCamera:nil];
    [super viewDidAppear:animated];
    }
    
  4. SubViewCamera создает экземпляр UIImagePickerController и показывает его:

    cameraUI = [[UIImagePickerController alloc] init];
    ...
    
    if ( self.cameraOverlayView == Nil ) {
      NSLog( @"THE CAMERA OVERLAY VIEW IS NIL" );
    } else {
    NSLog( @"THE CAMERA OVERLAY VIEW IS PUMPING UP" );
    }
    
    cameraUI.cameraOverlayView = self.cameraOverlayView;
    ...
    [controller presentModalViewController:cameraUI animated:NO];
    

На этом этапе представлено модальное окно imagePicker, но отсутствует наложение, и в журнале отображается строка THE CAMERA OVERLAY VIEW IS NIL. Если я заменю cameraTabViewController напрямую на subViewCamera в appDelegate при создании пользовательской панели вкладок, все будет работать так, как ожидается, и камера будет показана с наложением, но, к сожалению, я не могу оставить это таким образом, потому что мне также нужны другие подпредставления .

Основное различие заключается в том, что в первом случае файл пера фактически не загружается, а выходы остаются нулевыми (метод viewDidLoad() в ModalCameraViewController даже не вызывается). Я также попытался изменить шаг 2., чтобы subViewCamera инициализировалась с initWithNibName(), но безуспешно.

...