0

私はiPadに元のviewcontorllerでUIcontrollerを表示しようとしていますが、ユーザーがバックグラウンドでcontorllerと同様に操作できるように、サイズが小さくなっています。これが私の目標でしたが、ユーザーがバックグラウンドでコントローラーを操作できなくても問題ありませんが、バックグラウンドでコントローラーを確認することが不可欠です。私はこのコードを試しました:

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:controller animated:YES];


    controller.view.layer.cornerRadius = 10; // this value vary as per your desire
    controller.view.clipsToBounds = YES;

    controller.view.frame = CGRectMake(343, 163, 316, 546.5);

これにより、設定されたフレームでコントローラーが表示されますが、背景には他のコントローラーは表示されず、黒で表示されます。なんで?

4

1 に答える 1

1

他のViewControllerからのこのPresentingViewControllerとViewControllerについてのこのPresentingViewControllerを確実に使用しください

「モーダルビューのプレゼンテーションスタイル」のセクションでは、私が思うにあなたの問題について説明しています。

コントローラにはさまざまな表示スタイルがあります。プロパティ--modalPresentationStyleをUIModalPresentationPageSheetまたはUIModalPresentationFormSheetに設定して、ビューコントローラーを他の上に表示することができます。

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
controller.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:controller animated:YES];

別の方法は、UIPopoverControllerを使用することです。すべての画面ビューではないサイズのビューを表示するように設計されています。ただし、他のViewControllerをタッチすると非表示になります。

于 2013-01-13T20:38:50.850 に答える