在TabBarController中的UIImagePickerController
我想实现在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方法内创build一个inifite循环,并且tabbar不再反应。 我错过了什么?
我不希望ImagePickerController是全屏幕,并用“presentviewcontroller”方法推送,但作为一个“普通”视图加载其中一个选项卡。
所以我的问题是:
1)我应该宁愿使用“viewdidload”而不是“loadview”? 因为与viewdidload似乎是工作
2)但是,当使用viewdidload我无法修复应该显示imagepicker的框架。 video屏幕下方和tabBar上方总是有一个黑条。
非常感谢!!
我认为当您将-addSubview
消息发送到-addSubview
之前设置视图本身的东西像self.view = [[UIView alloc] initWithFrame:someFrame];
因为在技术上,在loadView
你应该设置视图控制器的视图。
如果self.view
是nil
而您尝试发送消息, -loadView
再次调用-loadView
,导致无限循环。