2

Я работаю с раздвижным меню, как вы видели в приложении Facebook или Path.UIModalViewController Скрыт за UIViewController

В заднем меню я хочу разрешить пользователю добавлять изображение с помощью камеры или библиотеки фотографий.

Проблема, с которой я столкнулась, - это главный контроллер вида, который я слайд, всегда на высоте.

Лист действия прекрасно выглядит, но контроллер модального вида скрыт частично от главного контроллера.

Вот мой сборщика код:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    _UIPicker = [[UIImagePickerController alloc] init]; 
    _UIPicker.delegate = self; 
} 

- (IBAction)profilePicButtonTapped 
{ 
    UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle:@"Set Up Your Profile Picture" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Camera", @"Photo Library", nil]; 
    actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque; 
    [actionSheet showInView:_rearTableView]; 
} 

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == 0) 
    { 
     _UIPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
     [self presentViewController:_UIPicker animated:YES completion:nil]; 
    } 
    else if (buttonIndex == 1) 
    { 
     _UIPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
     [self presentViewController:_UIPicker animated:YES completion:nil]; 
    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Error" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; 
     [alert show]; 
    } 
} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage * selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    _profileImageView.image = selectedImage; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 
{ 
    [picker dismissViewControllerAnimated:YES completion:nil]; 
} 

ответ

1

Быстрый способ решить это было бы скрыть главный ViewController когда вы представите сборщика и показать его снова, как только он уволен. Предполагая, что у вас есть ссылка на основной ViewController, просто установите для свойства view.hidden значение YES.

Другой способ справиться с этим - представить его из основного ViewController вместо заднего меню.

+0

Имеет смысл, но мой основной ViewController не скроется, когда я установил свойство YES. Лучший пример того, что я хочу сделать, - это приложение GroupMe и то, как вы устанавливаете образ профиля группы. –