2012-03-31 6 views
2

Ich habe eine App, die auf UITabBarController basiert. Es hat 3 Registerkarten. Auf der ersten Registerkarte (standardmäßig beim Start der App) wird UIImagePickerController angezeigt, um ein Album auszuwählen. Aber das Problem ist: TabBar wird von UIImagePickerController abgedeckt werden. Wie kann man UIImagePickerController in die UITabBarController einfügen? Hilfe wird sehr geschätzt. Hier ist mein Code:Wie Sie UIImagePickerController in UITabbarController einfügen

// die erste Registerkarte viewController.m

- (void)loadView 
{ 

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

} 

Nach versuchen Sie es erneut, ich einige Code wie folgt ändern, kann die Tab-Leiste angezeigt werden, aber nicht angeklickt werden können. wie macht man?

- (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]; 

} 

Antwort

0

statt es als modal View-Controller präsentiert, fügen Sie einfach Ansicht ist es zu Ihrem aktuellen View-Controller:

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

nicht Anpassungen an den Rahmen zu machen Vergessen Sie, wenn nötig.

+0

Danke. Aber es wird einen komplett weißen Bildschirm ohne blauen Balken zeigen. – user1304431

+0

Haben Sie den Frame und den sourceType für den Picker definiert? – sooper

+0

Ich füge die sourceType = UIImagePickerControllerSourceTypePhotoLibrary, und CGRect rect = CGRectMake (0, 0, 320, 300); imagePicker.view.frame = rect; vor addSubView. aber nichts ist passiert. – user1304431