2015-10-26 16 views
5

ho sviluppato un progetto che mostra l'errore:'UIPopoverController' è deprecato: dal deprecato in iOS 9.0

'UIPopoverController' è deprecato: dal deprecato in iOS 9.0 - UIPopoverController è deprecato. I popover sono ora implementati come presentazioni di UIViewController. Utilizzare uno stile di presentazione modale di UIModalPresentationPopover e UIPopoverPresentationController.

mie codifiche sono:

ViewController.h:

#import <UIKit/UIKit.h> 
#import <Photos/Photos.h> 
#import <MobileCoreServices/MobileCoreServices.h> 



@interface ViewController : UIViewController 
<UIImagePickerControllerDelegate, UINavigationControllerDelegate> 

- (IBAction)touch:(id)sender; 

@end 

@interface SecondView : UIViewController 
<UIImagePickerControllerDelegate, UINavigationControllerDelegate> 



//video gallery 
@property (strong,nonatomic) UIPopoverPresentationController *popOver; 
@property (weak, nonatomic) IBOutlet UIView *studentView; 
@property (strong, nonatomic) NSURL *videoURL; 


@end 

ViewController.m:

- (void)openGallery { 

UIImagePickerController *Picker=[[UIImagePickerController alloc] init]; 
Picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; 
Picker.mediaTypes=[[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil]; 
Picker.delegate=self; 

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 

{ 


    UIPopoverController *popController=[[UIPopoverController alloc] initWithContentViewController:Picker]; 
    [popController presentPopoverFromRect:CGRectMake(0, 600, 160, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
    self.popOver=popController; 
} 
else 
{ 
    [self presentViewController:Picker animated:YES completion:nil]; 
} 
} 


#pragma mark - UIImagePickerControllerDelegate 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


if (self.studentView) { 

    self.videoURL = info[UIImagePickerControllerMediaURL]; 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 


    [[NSUserDefaults standardUserDefaults] setObject:[self.videoURL absoluteString] forKey:@"url1"]; 
} 

} 

ho potuto non corretta di riferimento per UiModalPresentationPopover. Qualcuno può aiutarmi a risolvere questo errore. Ogni aiuto è molto apprezzato. Grazie.

risposta

5

uso UIModalPresentationPopover

In un ambiente in senso orizzontale regolare, uno stile presentazione in cui il contenuto viene visualizzato in una vista popover. Il contenuto dello sfondo non è attivo e tocca fuori dal popover causa il popover da eliminare. Se non si desidera che i tocchi ignorino il pop-up , è possibile assegnare una o più viste alla proprietà passthroughViews dell'oggetto UIPopoverPresentationController associato, , che è possibile ottenere dalla proprietà popoverPresentationController.

In un ambiente orizzontale compatto, questa opzione si comporta come UIModalPresentationFullScreen.

Disponibile in iOS 8.0 e versioni successive.

Riferimento UIModalPresentationStyle Reference

per esempio

ModalViewController *modal = [[ModalViewController alloc] init]; 
modal.modalPresentationStyle = UIModalPresentationPopover; 
modal.transitioningDelegate = self; 
modal.popoverPresentationController.sourceView = self.view; 
modal.popoverPresentationController.sourceRect = CGRectZero; 
modal.popoverPresentationController.delegate = self; 

[self presentViewController:modal animated:YES completion:nil]; 

altro utilizzare UIPopoverPresentationController

per esempio

UIPopoverPresentationController *popController = [self. popoverPresentationController]; 
popController.permittedArrowDirections = UIPopoverArrowDirectionAny; 
popController.barButtonItem = self.leftButton; 
popController.delegate = self; 

addizionale reference