添加代理<UIImagePickerControllerDelegate,UINavigationControllerDelegate> 首先在点击事件中添加滑出菜单 - (IBAction)editAvatarAction:(UIButton *)sender { UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"上传头像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"相册", nil]; [sheet showInView:self.view]; } 然后在actionSheet的代理方法中选择拍照或相册 -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { switch (buttonIndex) { case 0://拍照 { BOOL isCameraSupport = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; if(isCameraSupport){ UIImagePickerController *imagepicker = [[UIImagePickerController alloc]init]; imagepicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagepicker.allowsEditing = YES; imagepicker.delegate = self; [self presentViewController:imagepicker animated:YES completion:nil]; } } break; case 1://相册 { BOOL isCameraSupport = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]; if(isCameraSupport){ UIImagePickerController *imagepicker = [[UIImagePickerController alloc]init]; imagepicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagepicker.allowsEditing = YES; imagepicker.delegate = self; [self presentViewController:imagepicker animated:YES completion:nil]; } } break; default: break; } } //最后在UIImagePickerControllerDelegate代理方法(确认选取) -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info { [picker dismissViewControllerAnimated:YES completion:^{ UIImage *image = info[UIImagePickerControllerEditedImage];//获取选取的图片 }