0

アプリケーションで UIPopoverController を使用したいので、この例を試していました。問題は、その例のビューとコントローラーがコードから作成されていることです。

   UIViewController* popoverContent = [[UIViewController alloc]
                  init];
   UIView* popoverView = [[UIView alloc]
                  initWithFrame:CGRectMake(0, 0, 200, 300)];
   popoverView.backgroundColor = [UIColor greenColor];
   popoverContent.view = popoverView;

ポップアップ用の xib ファイルで既存のコントローラーを使用したい。ポップアップを既存のコントローラーにリンクするにはどうすればよいですか? また、ポップアップのサイズと一致するように、コントローラーのビューを特別な方法で作成する必要がありますか?

4

2 に答える 2

1

はい、できます:

    MyUIViewController* content = [[MyUIViewController alloc] initWithNibName:@"myNib" bundle: nil];
    // additional initialization in loadView

    UIPopoverController* aPopover = [[UIPopoverController alloc]
                                     initWithContentViewController:content];
于 2012-08-24T22:06:57.953 に答える
0

既存の xib を使用する場合は、nitWithNibName:bundle:メソッドを使用して viewController を初期化するだけです。xib を使用して初期化すると、viewController のビュー階層がインスタンス化されます。

UIViewController* popoverContent = [[UIViewController alloc] initWithNibName:@"yourXibName" bundle:nil];

初期化時にビューのサイズを変更することを心配する必要はありません。プロパティcontentSizeForViewInPopoverが設定されている場合、次の行で引用するコード例でビューのサイズが変更されます。

于 2012-08-24T22:06:10.863 に答える