2015-10-26 20 views
5

ich ein Projekt entwickelt, das Fehler zeigt:'UIPopoverController' ist veraltet: zuerst in iOS 9.0 veraltet

'UIPopoverController' veraltet ist: zuerst in iOS veraltet 9.0 - UIPopoverController veraltet. Popovers werden jetzt als UIViewController-Präsentationen implementiert. Verwenden Sie einen modalen Präsentationsstil von UIModalPresentationPopover und UIPopoverPresentationController.

Meine Codierungen sind:

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"]; 
} 

} 

konnte ich nicht die richtige Referenz für UiModalPresentationPopover. Kann mir jemand helfen, diesen Fehler zu beheben? Jede Hilfe wird sehr geschätzt. Vielen Dank.

Antwort

5

Verwendung UIModalPresentationPopover

In einer horizontal regelmäßigen Umgebung ein Präsentationsstil, wo der Inhalt in einer popover Ansicht angezeigt wird. Der Hintergrundinhalt ist abgeblendet und taps außerhalb des Popover, weil das Popover abgewiesen wird. Wenn das Popover nicht durch Antippen beendet werden soll, können Sie der Eigenschaft passthroughViews des zugeordneten UIPopoverPresentationController-Objekts eine oder mehrere Ansichten zuweisen, die Sie über die Eigenschaft popoverPresentationController abrufen können. In einer horizontal kompakten Umgebung verhält sich diese Option genauso wie UIModalPresentationFullScreen.

Verfügbar in iOS 8.0 und höher.

Referenz UIModalPresentationStyle Reference

zum Beispiel

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

sonst UIPopoverPresentationController verwenden

zum Beispiel

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

zusätzliche reference