Ios 如何将UIImagePickerController插入UITabbarController中

Ios 如何将UIImagePickerController插入UITabbarController中,ios,uitabbarcontroller,uiimagepickercontroller,Ios,Uitabbarcontroller,Uiimagepickercontroller,我有一个基于UITabBarController的应用程序。它有3个标签。在第一个选项卡中(应用程序启动时的默认设置),UIImagePickerController将显示以选择相册。但问题是:TabBar将被UIImagePickerController覆盖。如何在UITabBarController中插入UIImagePickerController?非常感谢你的帮助。这是我的密码: //第一个选项卡的viewController.m - (void)loadView { sel

我有一个基于
UITabBarController
的应用程序。它有3个标签。在第一个选项卡中(应用程序启动时的默认设置),
UIImagePickerController
将显示以选择相册。但问题是:
TabBar
将被
UIImagePickerController
覆盖。如何在
UITabBarController
中插入
UIImagePickerController
?非常感谢你的帮助。这是我的密码:

//第一个选项卡的
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];

}

与其将其显示为模态视图控制器,不如将其视图添加到当前视图控制器:

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

如果需要,不要忘记对框架进行调整。

不要将其显示为模态视图控制器,只需将其视图添加到当前视图控制器中即可:

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

如果需要,不要忘记对框架进行调整。

谢谢。但是它会显示一个完全白色的屏幕,没有蓝条。您为选择器定义了帧和源类型吗?我添加了sourceType=UIImagePickerControllerSourceTypePhotoLibrary和CGRect-rect=CGRectMake(0,032300);imagePicker.view.frame=rect;在添加子视图之前。但是什么也没有发生。您是否检查了是否正在调用
loadView
?可能在那里放一个
NSLog
语句。是的,调用了loadView。如果标记行:[self.view addSubview:imagePicker.view],将显示imagePicker控制器,但会覆盖选项卡栏。谢谢。但是它会显示一个完全白色的屏幕,没有蓝条。您为选择器定义了帧和源类型吗?我添加了sourceType=UIImagePickerControllerSourceTypePhotoLibrary和CGRect-rect=CGRectMake(0,032300);imagePicker.view.frame=rect;在添加子视图之前。但是什么也没有发生。您是否检查了是否正在调用
loadView
?可能在那里放一个
NSLog
语句。是的,调用了loadView。如果标记行:[self.view addSubview:imagePicker.view],将显示ImagePickerController,但会覆盖选项卡栏。