0
 - (UIViewController *)activityViewController

ポップアップを表示するビュー コントローラーを返すカスタム UIACtivity を作成しました。これにより、ユーザーは実際のアクティビティを実行する前に編集を行うことができます。

8 未満の iOS では、オーバーレイのように見える透過性のある背景が機能します (下にゲームが表示されます) が、iOS8 に更新した後、背景は無地のグレーになります。オーバーレイ画像をアルファ付きで表示している UIImageView を確認しましたが、クリアに設定されています。背景が突然ベタベタになる理由を教えてください。下にあるゲームのビューが見えなくなりました。

これが私のコードです:

- (IBAction)didPressShareButton:(id)sender
{
    ...
    [_rootViewController presentViewController:[self getActivityViewController] animated:YES completion:nil];
    ...
}

_rootViewController は、私のアプリケーションのメイン ビュー コントローラーです。
[self getActivityViewController] は、instagram のカスタム UIActivity を含む UIActivityViewController のインスタンスを返します

私の InstagramUIActivity は、この関数をオーバーライドして、カスタム ビュー コントローラーを返します (添付の画像を参照)。

- (UIViewController *)activityViewController
{
    dismissalAC = [[InstagramDismissal alloc]init];
    presentationAC = [[InstagramPresentation alloc]init];

    instagramVC = [[InstagramViewController alloc]initWithInstagramPhoto:_instagramPhoto];
    instagramVC.delegate = self;
    if ([instagramVC respondsToSelector:@selector(setTransitioningDelegate:)]) {
        instagramVC.transitioningDelegate = self;
    }

    return instagramVC;
}

DismissalAC と presentationAC は、UIViewControllerAnimatedTransitioningプロトコルを実装する単なるオブジェクトであるため、独自の遷移アニメーションを作成できます。

カスタム ビュー コントローラーを返すとポップアップしますが、それと共に白い背景のビューが表示されます。どうしてか分かりません。

階層を表示 ここに画像の説明を入力

4

2 に答える 2

1

試す

instagramVC.modalPresentationStyle = UIModalPresentationOverFullScreen;

また

instagramVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
于 2015-07-10T03:12:26.073 に答える
0

アプリでもこの問題が発生しました。

iOS 8 以降、Apple は のサブビューのサブクラス化やカスタマイズを禁止していUIActivityViewControllerます。

アプリでこれを行った場合、アプリはビューの上にオーバーレイを表示し、ボタンのない空のグレー リストを表示します。この場合、アプリを強制終了してUIActivityViewController.

この動作を置き換えるには、同じレイアウトで (プログラムまたはストーリーボードから) ビューを作成するだけで、画面の下から (アニメーションで) 表示させることができます。必要に応じてサンプル コードを尋ねてください。

于 2014-10-13T09:54:03.363 に答える