2016-12-22 2 views
2

사용자가 공유 버튼을 클릭 할 때 popoverPresentationController를 표시하려고합니다. 공유 버튼에 작업 시트를 사용했습니다.UIActivityViewController가 iPad에서 작동하지 않습니까?

NSString *aText = @"Some Text"; 

    NSURL *aUrl = [NSURL URLWithString:@"www.demo.com"]; 

    NSArray *objectsToShare = @[aText,aUrl]; 
    NSArray * applicationActivities = nil; 

    UIActivityViewController * activityViewController = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:applicationActivities]; 

    activityViewController.excludedActivityTypes = @[ 
                UIActivityTypePostToWeibo, 
                UIActivityTypeAssignToContact, 
                UIActivityTypeAirDrop, 
                UIActivityTypeAddToReadingList, 
                UIActivityTypeCopyToPasteboard, 
                UIActivityTypeSaveToCameraRoll, 
                UIActivityTypePrint, 
                UIActivityTypePostToFlickr, 
                UIActivityTypePostToTencentWeibo,]; 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 
     [self presentViewController:activityViewController animated:YES completion:nil]; 
    } 
    else { 

     UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityViewController]; 
     [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4 + 20, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

    } 

그것은 아이 패드 (화면에 표시 아무것도)에 잘못 : 여기가 아이 패드에서 작동하지 않는 내 코드입니다. 어떻게 해결할 수 있을까요?

답변

2

예, 문제가 해결되었습니다.

iPad에서는 활동보기 컨트롤러가 popoverPresentationController를 사용하여 팝업으로 표시되고 show 팝업에 UIAlertController를 사용합니다.

UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; 

[actionSheet addAction:[UIAlertAction actionWithTitle:@"Share" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 

NSString *aText = @"Some Text"; 

NSURL *aUrl = [NSURL URLWithString:@"www.demo.com"]; 

NSArray *objectsToShare = @[aText,aUrl]; 
NSArray * applicationActivities = nil; 

UIActivityViewController * activityViewController = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:applicationActivities]; 

activityViewController.excludedActivityTypes = @[ 
               UIActivityTypePostToWeibo, 
               UIActivityTypeAssignToContact, 
               UIActivityTypeAirDrop, 
               UIActivityTypeAddToReadingList, 
               UIActivityTypeCopyToPasteboard, 
               UIActivityTypeSaveToCameraRoll, 
               UIActivityTypePrint, 
               UIActivityTypePostToFlickr, 
               UIActivityTypePostToTencentWeibo,]; 

     UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityViewController]; 
     [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4 , 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

    }]]; 

    actionSheet.popoverPresentationController.sourceView = self.view; 
    actionSheet.popoverPresentationController.sourceRect = CGRectMake(self.view.frame.size.width, btn.frame.origin.y +btn.frame.size.height , 0, 0); 
    actionSheet.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp; 

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