未在customTabBar应用程序中加载叠加视图

时间:2011-08-04 13:32:06

标签: iphone overlays

我的customTabBar应用程序在按下其中一个自定义标签栏按钮时加载视图控制器。其中一个标签栏按钮打开一个UIImagePickerController,顶部有一个叠加层,但叠加层中的按钮没有显示 - 叠加层实际上是无。

序列如下:

  1. AppDelegate为applicationDidFinishLaunching中的每个自定义标签栏按钮分配并初始化各种控制器;

  2. cameraTabViewController在其init方法中分配和初始化各种子视图控制器,包括subViewCamera:

    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];
    
  5. 此时,将显示imagePicker模式窗口,但缺少叠加视图,日志显示行THE CAMERA OVERLAY VIEW IS NIL。 如果我在构建自定义标签栏时直接用appDelegate中的subViewCamera替换cameraTabViewController,一切都按预期工作,并且相机显示有叠加但不幸的是我不能以这种方式离开,因为我还需要其他子视图

    主要区别在于,在第一种情况下,实际上没有加载nib文件,并且出口保持为nil(甚至没有调用ModalCameraViewController的viewDidLoad()方法)。我还尝试更改步骤2.以便使用initWithNibName()初始化subViewCamera但没有成功。

0 个答案:

没有答案