Ios Tabbar控制器中的UIImagePickerController

Ios Tabbar控制器中的UIImagePickerController,ios,uitabbarcontroller,uiimagepickercontroller,viewdidload,loadview,Ios,Uitabbarcontroller,Uiimagepickercontroller,Viewdidload,Loadview,我试图在UITabBarController中实现imagepickercontroller。到目前为止,一切顺利 在我的ViewController中,启动imagePickerController,然后将其放入我的TabBarViewController tabbar数组中,我实现了“loadview”方法: 但是当我运行这个应用程序时,这个应用程序似乎在loadView方法中创建了一个inifite循环,而tabbar不再做出反应。我错过什么了吗 我不希望ImagePickerContro

我试图在UITabBarController中实现imagepickercontroller。到目前为止,一切顺利

在我的ViewController中,启动imagePickerController,然后将其放入我的TabBarViewController tabbar数组中,我实现了“loadview”方法:

但是当我运行这个应用程序时,这个应用程序似乎在loadView方法中创建了一个inifite循环,而tabbar不再做出反应。我错过什么了吗

我不希望ImagePickerController全屏显示,并使用“presentviewcontroller”方法按下,而是作为“普通”视图加载到其中一个选项卡中

因此,我的问题是:

1) 我应该使用“viewdidload”而不是“loadview”吗?因为在viewdidload中,它似乎正在工作

2) 但是当使用viewdidload时,我无法修复应该显示imagepicker的帧。视频屏幕下方和选项卡栏上方始终有一个黑色条


非常感谢

我认为,在使用类似于
self.view=[[UIView alloc]initWithFrame:someFrame]的内容设置视图本身之前,当您将
-addSubview
消息发送到
self.view
时,无限循环就会出现loadView
中,您应该设置视图控制器的视图


如果
self.view
nil
并尝试发送消息,则会再次调用
-loadView
,从而产生无限循环。

我认为,在使用类似
self.view=[[UIView alloc]initWithFrame:someFrame];
因为从技术上讲,在
加载视图中,您应该设置视图控制器的视图。如果
self.view
nil
并且您尝试发送消息,则会再次调用
-loadView
。但是视图是否已在“showCamera”中初始化方法,在添加子视图之前加载到“loadView”中?是的!!现在我知道了!刚刚用UIView初始化了self.view…完美地解决了我的问题!!谢谢!我将添加我的评论作为答案!
- (void)loadView{
    self.arController = [[IFAugmentRealityController alloc] initWithViewController:self];
    [self showCamera];
    [self initOverlayController];
    self.picker.delegate = self;
    [self.view addSubview:self.picker.view];

}

- (void)initOverlayController {
    overlay = [[IFAROverlayView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];
    overlay.delegate = self;    
}

- (void)showCamera {
    self.picker = [[UIImagePickerController alloc] init];
    self.picker.navigationBarHidden = YES;
    self.picker.toolbarHidden = YES;
    self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    self.picker.showsCameraControls = NO;
    self.picker.cameraViewTransform = CGAffineTransformScale(self.picker.cameraViewTransform, CAMERA_TRANSFORM_X, CAMERA_TRANSFORM_Y);
    self.picker.cameraOverlayView = overlay;
}