在的UIImagePickerController TabBarController(UIImage

2019-11-01 15:20发布

我想实现的UITabBarController内imagepickercontroller。 到现在为止还挺好....

在我的ViewController,在那里我开始imagePickerController,然后将我的TabBarViewController的TabBar阵列,我实现了“的loadView”方法:

- (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;
}

但是,当我运行的应用程序,该应用程序似乎是创建的loadView方法内的inifite循环,使用TabBar没有了反应。 我错过了什么了呢?

我不想ImagePickerController是全屏,并与“presentviewcontroller”的方法推,但加载的卡口的一个“正常”的说法。

所以我的问题是:

1)应我宁愿用“viewDidLoad中”,而不是“的loadView”? 因为viewDidLoad中它似乎是工作

2)但是,使用时viewDidLoad中我无法修复在其中imagepicker应显示的帧。 总是有视频屏幕下方和上方的TabBar黑条。

非常感谢!!

Answer 1:

我觉得无限循环当您发送在未来-addSubview消息self.view如设置视图本身的东西之前self.view = [[UIView alloc] initWithFrame:someFrame]; 因为,在技术上,而在loadView你应该要设置视图控制器的看法。

如果self.viewnil ,并尝试将其发送的消息, -loadView再次被调用,导致无限循环。



文章来源: UIImagePickerController in TabBarController