2

Apple のサンプル コードに基づいて 、私のアプリはビュー コントローラーをポップオーバーに表示しています。これはバー ボタンによってトリガーされます。

- (IBAction)configChartTapped:(id)sender {

GrowthChartConfigOneViewController *panelViewController = [[GrowthChartConfigOneViewController alloc]init];

UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:panelViewController];
popover.delegate = self;

// Store the popover in a custom property for later use.
self.popover = popover;

[self.popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
}

ただし、ポップオーバーのサイズを設定する方法が見つかりませんでした。

質問: ポップオーバーとそのビュー コントローラーのサイズはどこでどのように設定すればよいですか? XCode でサイズを直接設定して、ストーリーボードでビューのサイズを正しく設定できますか?

4

3 に答える 3

5

ポップオーバー クラス自体に設定することもできます。このようにして、ポップオーバーを複数の場所から呼び出すことを許可する場合、サイズを 1 回設定するだけで済みます。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.view.backgroundColor = [UIColor redColor];
        self.contentSizeForViewInPopover = CGSizeMake(320.0, 216.0);
    }
    return self;
}
于 2012-11-21T17:52:06.777 に答える
3

popovercontentsize を指定して、以下に定義されているように、ビューがポップオーバー サイズに収まるようにします。

    popover = [[UIPopoverController alloc] initWithContentViewController: panelViewController];
    popover.popoverContentSize = CGSizeMake(550, 700);
于 2012-10-12T18:14:18.593 に答える
2

上記の良い答えですが、ニーズが少し異なるため、ストーリーボード用に更新したかっただけです。次のようなストーリーボード識別子を使用してインスタンス化する場合:

CBItemViewController *addNewPayee = [self.storyboard instantiateViewControllerWithIdentifier:@"cbItemPopover"];

次に、次のようにポップオーバーのコード内でカスタム サイズを設定できます。

- (id)initWithCoder:(NSCoder *)decoder {
    if(self = [super initWithCoder:decoder]) {
        self.preferredContentSize = CGSizeMake(630, 340);
    }
    return self;

}
于 2014-10-30T19:12:53.363 に答える