2

現在、iOS アプリケーションの更新を行っています。アップデートでは、iOS6 の機能を活用します。これを実現するために UIActivityViewController といくつかのカスタム UIActivity アクティビティを使用しています。私が抱えている主な問題は、「キャンセル」または「閉じる」ボタンがないことです。アクティビティ ビューを終了できる唯一の方法は、ソーシャル ネットワークに何かを投稿するか、そうするつもりで行動してからキャンセルすることです。

NSArray* dataToShare = [[NSArray alloc] initWithObjects:@"blah", nil];
// Custom activities are allocated here
NSArray* customActivities = [[NSArray alloc] initWithObjects:activities, nil];
NSArray* excludedActivities = [[NSArray alloc] initWithObjects:exclusions, nil];

activityController = [[UIActivityViewController alloc] initWithActivityItems:formatArray applicationActivities:customActivities];
activityController.excludedActivityTypes = excludedActivities;

activityController.modalPresentationStyle = UIModalPresentationFormSheet;
[[UIApplication sharedApplication].keyWindow addSubview:self.view];
[[UIApplication sharedApplication].keyWindow bringSubviewToFront:activityController.view];
[self presentViewController:activityController animated:YES completion:^{ closureCode
}];

これは、ネットワーク コンテンツに関してアクティビティ コントローラー内で必要なすべてのことを行います。閉じるボタンがないだけです。同じ問題かどうかはわかりませんが、「共有」メニューを再度表示しようとするとビューが消えると表示されます

<UIActivityViewController: 0x1e0db7d0>  on <ShareDelegate: 0x1e048490> which is already presenting <UIActivityViewController: 0x21b1d4f0>

考え?前もって感謝します!

*私は使っている:

  • iPad2
  • Objective-C/C++
  • X コード 4.5
  • iOS6
4

1 に答える 1

4

ドキュメントからUIActivityViewController(強調は私のものです):

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

iPad では、ユーザーがポップオーバーの外側をタップすると、ポップオーバーがキャンセルされます。

iPhone/iPod touch では、モーダル ビュー コントローラーにキャンセル ボタンが表示されます。

つまり、iPad でフォーム シートを使用しないでください。

于 2013-01-28T23:12:28.770 に答える