2

I can see the list of songs and select the songs. But I cannot dismiss the view controller on pressing "Done". I've tried PresentViewController since Modal controller is deprecated.

- (IBAction) showMediaPicker: (id) sender {

    picker =
    [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAnyAudio];

    picker.delegate                     = self;
    picker.allowsPickingMultipleItems   = YES;
    picker.prompt                       = NSLocalizedString (@"AddSongsPrompt", @"Prompt to user to choose some songs to play");

    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleDefault animated:YES];
    [self.picker removeFromParentViewController];
  [self presentViewController:picker animated:YES completion:nil];
   // [picker release];
}


// Responds to the user tapping Done after choosing music.
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {
    [self.picker removeFromParentViewController];
        [self dismissViewControllerAnimated:YES completion:nil];
   //
    [self.delegate updatePlayerQueueWithMediaCollection: mediaItemCollection];
   // [self.mediaItemCollectionTable reloadData];

   // [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque animated:YES];
}

I've tried RemovefromSuperview also, nothing seems to work. I'm testing this on an iPhone 6 simulator and an iPhone 5 with iOS 8.1.3.

Anyone???

Neo101
  • 33
  • 3

1 Answers1

0

I tested your code and removed some calls to removeFromParentViewController: because I don't think they're necessary.

- (IBAction)showMediaPicker:(id)sender {
    MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeAnyAudio];

    picker.delegate = self;
    picker.allowsPickingMultipleItems = YES;
    picker.prompt = @"Some Prompt";

    [self presentViewController:picker animated:YES completion:nil];
}

// mediaPicker:didPickMediaItems: will be called if at least one song was selected
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
    [mediaPicker dismissViewControllerAnimated:YES completion:nil];
}

// mediaPickerDidCancel: will be called if no songs were selected
- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker {
    [mediaPicker dismissViewControllerAnimated:YES completion:nil];
}

Make sure your .h-file includes the MPMediaPickerControllerDelegate protocol.

Fabio Poloni
  • 8,219
  • 5
  • 44
  • 74