gpt4 book ai didi

ios - 从 UIButton 而不是 UIBarButtonItem 显示 WEPopover

转载 作者:行者123 更新时间:2023-11-28 20:42:55 26 4
gpt4 key购买 nike

我在我的应用程序中使用 WEPopover 来弹出一个包含一些按钮的 popover Controller ,当我将 wepopover Controller 操作放在 tabbarIteam 中时它可以工作,但是当我单击 UIButton 时我需要获取 popover。如何做到这一点这是我的 barbuttonitem 代码用于显示弹出框。

-(IBAction)_clickbtnAccount:(id)sender
{
if (!self.popoverController)
{
UIViewController *contentViewController = [[pageAccount alloc]initWithNibName:@"pageAccount" bundle:nil];
self.popoverController = [[[popoverClass alloc] initWithContentViewController:contentViewController] autorelease];
self.popoverController.delegate = self;
self.popoverController.passthroughViews = [NSArray arrayWithObject:self.navigationController.navigationBar];

[self.popoverController presentPopoverFromBarButtonItem:sender
permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown)
animated:YES];
[contentViewController release];
}
else
{
[self.popoverController dismissPopoverAnimated:YES];
self.popoverController = nil;
}
}

-(IBAction)_clickbtnAccount:(id)sender
{
if (!self.popoverController)
{
UIButton *senderButton = (UIButton *)sender;
[self.popoverController presentPopoverFromRect:[senderButton frame]
inView:@"pageAccount"
permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown)
animated:YES];
}
else
{
[self.popoverController dismissPopoverAnimated:YES];
self.popoverController = nil;
}
}

最佳答案

所以您不想显示来自UIBarButtonItemWEPopover,而是来自UIButton,对吧?!只需使用

- (void)presentPopoverFromRect:(CGRect)rect 
inView:(UIView *)view
permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections
animated:(BOOL)animated;

代替

- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item 
permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections
animated:(BOOL)animated;

并传入您的 UIButton 的 rect。

以你的代码为例:

-(IBAction)_clickbtnAccount:(id)sender
{
if (!self.popoverController) {

UIViewController *contentViewController = [[pageAccount alloc]initWithNibName:@"pageAccount" bundle:nil];
self.popoverController = [[[popoverClass alloc] initWithContentViewController:contentViewController] autorelease];
self.popoverController.delegate = self;
self.popoverController.passthroughViews = [NSArray arrayWithObject:self.navigationController.navigationBar];

UIButton *senderButton = (UIButton *)sender;
[self.popoverController presentPopoverFromRect:[senderButton frame]
inView:self.view
permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown)
animated:YES];

[contentViewController release];
} else {
[self.popoverController dismissPopoverAnimated:YES];
self.popoverController = nil;
}
}

关于ios - 从 UIButton 而不是 UIBarButtonItem 显示 WEPopover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648927/

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