我試圖在UITabBarController中實現imagepickercontroller。到目前爲止,一切都很好....TabBarController中的UIImagePickerController
在我的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上方總是有一個黑條。
非常感謝!
我認爲當你在'self.view = [[UIView alloc] initWithFrame:someFrame]設置視圖本身之前發送'-addSubview'消息到'self.view'時,會出現無限循環;''因爲在技術上,在'loadView'中,你應該設置視圖控制器的視圖。如果'self.view'爲'nil',並且您嘗試發送消息,則再次調用'-loadView'。 – Hyperbole 2013-02-21 18:57:09
但不是已經在「showCamera」方法中初始化的視圖,它是在添加子視圖之前在「loadView」中加載的? – konturgestaltung 2013-02-21 18:59:34
是的!現在我懂了!剛剛用UIView拳頭初始化self.view ...完美地解決了我的問題!謝謝 – konturgestaltung 2013-02-21 19:03:52