UIActivity
独自のサブクラスを作成しますactivityViewController
:
- (UIViewController *)activityViewController {
WSLInProgressViewController* progressView = [[[WSLInProgressViewController alloc] init] autorelease];
progressView.message = [NSString stringWithFormat:NSLocalizedString(@"Posting to %@...",@"Posting to..."),
self.activityType];
return progressView;
}
GitHubに完全な再現を追加しました。
ドキュメントによると、これを手動で却下することは想定されていません。代わりに、OS は呼び出し時にそれを行いますactivityDidFinish:
。これは、iPhone で実行すると問題なく動作します。
私が「動作する」と言うとき、これは私が期待している (そして iPhone で見られる) イベントのシーケンスです:
- 表示する
UIActivityViewController
- ユーザーがカスタム アクティビティを押す
- 私のView Controllerが表示されます
- 電話する
activityDidFinish:
- カスタム ビュー コントローラーが閉じられました
UIActivityViewController
も解任される
ただし、この同じコードを iPad シミュレーターで実行すると (唯一の違いはUIActivityViewController
、ドキュメントに記載されているように、ポップアップに配置することです)、activityViewController
決して閉じません。
私が言うように、これはiPhone でpopUP がactivityDidFinish:
機能するコードであり、コードをステップ実行したので、それが呼び出されていることがわかります。
この Radar がベータ 3で同じ問題iOS6
について話しているのを見つけましたが、OS ではなくコードのバグを疑うほど基本的な機能のようです (Twitter および Facebook の機能で正しく動作することにも注意してください!)。
何か不足していますか?で実行するとき、 activityViewController で何か特別なことをする必要がありUIPopoverViewController
ますか? iPadでは「流れ」が違うはずですか?