0

Я пытаюсь реализовать контроллер imagepicker внутри UITabBarController. До сих пор, так хорошо ....UIImagePickerController в TabBarController

В моей 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; 
} 

Но когда я бегу приложение, похоже, создает цикл inifite в методе loadView, и табло больше не реагирует. Я что-то пропустил?

Я не хочу, чтобы ImagePickerController был полноэкранным и был нажат с помощью метода «presentviewcontroller», но загружался как «нормальный» вид внутри одной из вкладок.

Так что мои вопросы:

1) я должен лучше использовать "viewdidload" вместо "loadview"? Потому что с viewdidload кажется, что работает

2) Но при использовании viewdidload я не могу исправить рамку, в которой должен отображаться образ. Всегда есть черная полоса под экраном видео и над tabBar.

Большое спасибо!

+1

Я думаю, что бесконечный цикл приходит, когда вы отправляете сообщение '-addSubview' в' self.view' перед установкой самого представления с помощью чего-то вроде 'self.view = [[UIView alloc] initWithFrame: someFrame];' потому что, технически, в то время как в 'loadView' вы должны установить представление контроллера представления. Если 'self.view' является' nil' и вы пытаетесь отправить его сообщения, '-loadView' вызывается снова. – Hyperbole

+0

, но это не представление, инициализированное уже в методе showCamera, который загружается в «loadView» перед добавлением subview? – konturgestaltung

+0

Да! Теперь я понял! Просто инициализировал self.view с кулаком UIView ... решила мою проблему отлично! Спасибо – konturgestaltung

ответ

1

Я думаю, что бесконечный цикл приходит, когда вы отправить -addSubview сообщений для self.view перед установкой самого представления с чем-то вроде self.view = [[UIView alloc] initWithFrame:someFrame];, потому что, технически, в то время как в loadView вы должны быть настройки зрения контроллера представления.

Если self.view is nil, и вы пытаетесь отправить его сообщения, -loadView вызывается снова, в результате получается бесконечный цикл.

 Смежные вопросы

  • Нет связанных вопросов^_^