25

新しいアプリでUIDocumentInteractionControllerを使い始めましたが、プレビュー画面に表示されるアクションメニューにアクションを追加する方法を知りたいですか?

メニューには、特定のURLタイプに登録されているアプリのみが表示されているようです。さらに、iOS4.2でPRINTが表示されています。メール送信を追加して写真に保存したいのですが、このメニューを拡張する方法がわかりません。必要なアクションをコーディングできます。メニューに追加するだけで、不可能に思えますか?

明らかな何かが欠けていますか?

4

4 に答える 4

2

あなたは正しいです、これらは方法です

- (BOOL) documentInteractionController: (UIDocumentInteractionController *) controller performAction: (SEL) action


- (BOOL) documentInteractionController: (UIDocumentInteractionController *) controller canPerformAction: (SEL) action

これらのメソッドでサポートされているアクションセレクターは、copy:およびprint:です。

于 2011-05-03T13:34:45.553 に答える
2

私はまだコメントできないので、代わりに答えています:-)

QuickLookフレームワークを試してみてください。私の場合、UIDocumentInteractionControllerをカスタマイズする方法をすべて検索しましたが、有用なものは見つかりませんでした。QuickLookを使用して、必要なこと(私の場合は、別のビュー内にプレビュー「ビュー」を表示)を実現しました。これは、QLPreviewControllerを子コントローラーとして使用するためのサンプルコードです(親コントローラーを自由に作成できるため、この場合はうまくいきます)。

self.previewController = [[QLPreviewController alloc]init];
self.previewController.delegate=self;
self.previewController.dataSource=self;
[self addChildViewController:self.previewController];
self.previewController.view.frame = CGRectMake(0, 0, self.previewView.frame.size.width, self.previewView.frame.size.height);
[self.previewView addSubview:self.previewController.view];
[self.previewController didMoveToParentViewController:self];

また、いくつかのデリゲートが必要になります:QLPreviewControllerDataSourceおよびQLPreviewControllerDelegate

また、実装する必要があるものもあります。

- (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index

NSURLをリソースに返します

- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller

プレビューするアイテムの数を返します(私の場合は1)

于 2014-01-27T15:07:09.063 に答える
2

メールを表示して「保存先」オプションを使用するには、

- (BOOL)presentOptionsMenuFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated;

また

- (BOOL)presentOptionsMenuFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated;

UIDocumentInteractionController.hで説明されているように:

/これは、ドキュメントをすばやく表示、開く、またはコピーするオプションをユーザーに提供するために呼び出す必要があるデフォルトのメソッドです。/

使用中

//ユーザーが別のアプリケーションでドキュメントを開くことができるメニューを表示します。

- (BOOL)presentOpenInMenuFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated;

また

- (BOOL)presentOpenInMenuFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated;

メール、SMS、「写真/ビデオに保存」は表示されません。

認識されない他のアクションが必要な場合は、UIActionSheetの使用を検討してください。

于 2014-11-18T08:16:14.060 に答える
0

iPadを使用していて、アプリを含むテーブルビュー内にあり、印刷、電子メール、その他すべてを手動で追加できる場合は、単純なUIActionSheetまたはより良いポップオーバーを提案できます。

于 2011-10-15T19:11:05.937 に答える