Как вставить UIImagePickerController внутри UITabbarController - PullRequest
2 голосов
/ 31 марта 2012

У меня есть приложение, основанное на UITabBarController. Имеет 3 вкладки. На первой вкладке (по умолчанию при запуске приложения) будет отображаться UIImagePickerController для выбора альбома. Но проблема в том, что TabBar будет охватываться UIImagePickerController. Как вставить UIImagePickerController внутрь UITabBarController? Помощь очень ценится. Вот мой код:

// первая вкладка viewController.m

- (void)loadView 
{

    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:NO];
    [imagePicker release];

}

После повторной попытки я изменил некоторый код следующим образом, панель вкладок может быть показана, но она не может быть нажата. как сделать?

- (void)loadView 
{

    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:imagePicker animated:NO];
    CGRect rect = CGRectMake(imagePicker.view.frame.origin.x,        
                             imagePicker.view.frame.origin.y, 
                             imagePicker.view.frame.size.width, 
                             imagePicker.view.frame.size.height-self.tabBarController.tabBar.frame.size.height);

    imagePicker.view.frame = rect;
    [imagePicker.view addSubview:self.tabBarController.tabBar];
    [imagePicker release];

}

1 Ответ

0 голосов
/ 31 марта 2012

Вместо того, чтобы представлять его как модальный контроллер представления, просто добавьте его представление к текущему контроллеру представления:

- (void)loadView {
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    [self.view addSubview:imagePicker.view];
    [imagePicker release];    
}

Не забудьте при необходимости внести изменения в кадр.

...