3

ユーザーがさまざまなフォームを共有できるアプリを作成しています。奇妙なのは、iPhone でアプリをテストすると、Activity View コントローラーが正常に動作することです。ここに画像の説明を入力

しかし、私がiPadでまったく同じことをするとき、しかし別のストーリーボードで。これは次のことを行います。

ここに画像の説明を入力

これらのビューの両方がアクションを取得するコードは次のとおりです。

#import "FluteS.h"
#import "TUSafariActivity.h"
#import "ARChromeActivity.h"
@interface FluteS ()

@end

@implementation FluteS

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
   self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
   if (self) {
    // Custom initialization
   }
return self;
}

-(IBAction)actionButton:(id)sender;{

    NSLog(@"actionButton pressed");
    NSBundle *bundle=[NSBundle mainBundle];
    NSString *filePath = [bundle pathForResource:@"Flute" ofType: @"pdf"];
    NSURL *fileURL= [NSURL URLWithString:@"http://www.friendswoodmustangband.org/wp-content/uploads/2012/04/Flute-Audition-Scales1.pdf"];
    NSURL *fileUrl = [NSURL fileURLWithPath:filePath];

    NSArray *activityItems = @[fileUrl, fileURL];
    ARChromeActivity *chromeActivity = [[ARChromeActivity alloc] init];

    TUSafariActivity *TUSafari = [[TUSafariActivity alloc] init];

    NSArray *applicationActivities = [NSArray arrayWithObjects:TUSafari,chromeActivity, nil];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities: applicationActivities];
    activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];


    activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePostToWeibo];
    [self presentViewController:activityVC animated:YES completion:nil];
}
- (void)viewDidLoad
{
   [super viewDidLoad];
    NSBundle *bundle=[NSBundle mainBundle];
    NSString *filePath = [bundle pathForResource:@"Flute" ofType: @"pdf"];
    NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
    NSURLRequest *request = [NSURLRequest requestWithURL:fileUrl];
    [_webView loadRequest:request];
// Do any additional setup after loading the view.
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

Info.plist のローカライズされた部分は既に確認しましたが、iPhone では機能するのに iPad では機能しない理由がわかりません。何が起こっているのか誰にも分かりませんか?

4

1 に答える 1

1

View Controller を提示するときは、現在のデバイスに適した手段を使用して行う必要があります。iPad では、View Controller をポップオーバーに表示する必要があります。iPhone および iPod touch では、モーダルで提示する必要があります。

iPad では次のコードを使用できます。

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"something"] applicationActivities:nil];
self.popover = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
self.popover.delegate = self;
[self.popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

お役に立てば幸いです。

于 2013-04-10T11:35:52.140 に答える