gpt4 book ai didi

ios - 如何显示另一个类的 UIPopover?

转载 作者:行者123 更新时间:2023-11-29 03:26:17 25 4
gpt4 key购买 nike

我有一个 iPad 应用程序(XCode 5、iOS 6、ARC 和 Storyboards),它有一个用于显示 UIView 的类。在一个单独的类中,我想在特定条件下显示 UIPopover。

我的最后一行代码有问题:

//  create a popover for login or registration
UIViewController* popoverContent = [[UIViewController alloc]init];
UIView* popoverView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 280, 180)];
popoverView.backgroundColor = [UIColor lightGrayColor];
popoverContent.view = popoverView;

//resize the popover view shown in the current view to the view's size
popoverContent.contentSizeForViewInPopover = CGSizeMake(320, 280); // was 180

//create a popover controller
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];

// if previous popoverController is still visible... dismiss it
if ([popoverController isPopoverVisible]) {
[popoverController dismissPopoverAnimated:YES];
}

// [popoverController presentPopoverFromRect:popoverView inView:self
// permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

SettingsViewController *svc = [[SettingsViewController alloc]init];
[popoverController presentPopoverFromRect: popoverView inView:svc.view.frame
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

它告诉我:

Sending 'UIView *__strong' to parameter of incompatible type 'CGRect' (aka 'struct CGRect')

我该如何解决这个问题? (我尝试过不同的方式来呈现弹出窗口,但都不起作用)。

最佳答案

假设 popoverView 是您希望弹出窗口呈现的 svc View 的部分,您的代码应为:

[popoverController presentPopoverFromRect:popoverView.frame inView:svc.view
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

这将纠正该错误。

编辑:它可能不为您显示的原因是因为您似乎误解了presentPopoverFromRect 方法。您在presentPopoverFromRect 方法中指定的框架需要与您希望弹出框出现的 View 点相对应。例如,要让弹出框出现在 View 的左上角,请执行以下操作:

[popoverController presentPopoverFromRect:CGRectMake(0, 0, 1, 1) inView:svc.view
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

关于ios - 如何显示另一个类的 UIPopover?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20429763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com