2017-03-05 15 views
0

私はこのshareボタンを使って、画面の下から共有メニューを表示します。iOS共有アクションシート - iPadクラッシュ

これは私が使用するコードです:

-(IBAction)ShareButton:(id)sender { 
    NSString *texttoshare = @"My Text"; 
    UIImage *imagetoshare = _MyImage; 
    NSArray *activityItems = @[texttoshare, imagetoshare]; 

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 
    activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint]; 

    [self presentViewController:activityVC animated:TRUE completion:nil]; 
} 

それは素晴らしいトンのiPhoneを動作しますが、iPadの上でクラッシュします。

iPads用の正しいViewControllerを実装するにはどうすればよいですか?

私は何かが、この内側に追加することができますね。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 

    //add alternative for iPad 
} 

ありがとうございました。

答えて

0

は、以下のことを行う:

viewDidLoadでこのコードを入れてください:

UIBarButtonItem *shareButton; 
shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(share:)]; 
self.navigationItem.rightBarButtonItem = shareButton; 

は、その後のアクションを作成します。

-(void)share:(id)sender { 

UIImage *image = [UIImage imageWithData:[chart getImage]]; 
NSArray *activityItems = @[image]; 

UIActivityViewController *activityViewControntroller = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 

activityViewControntroller.excludedActivityTypes = @[]; 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 

    activityViewControntroller.popoverPresentationController.sourceView = self.view; 
    activityViewControntroller.popoverPresentationController.sourceRect = CGRectMake(self.view.bounds.size.width/2, self.view.bounds.size.height/4, 0, 0); 

} 

[self presentViewController:activityViewControntroller animated:true completion:nil]; 
} 

は、それは作品..

ことを願っています
関連する問題