WEPopoverController presentPopoverFromBarButtonItem 导致指定的 UIBarButtonItem 消失

Posted

技术标签:

【中文标题】WEPopoverController presentPopoverFromBarButtonItem 导致指定的 UIBarButtonItem 消失【英文标题】:WEPopoverController presentPopoverFromBarButtonItem is causing the specified UIBarButtonItem to disappear 【发布时间】:2011-12-09 16:46:24 【问题描述】:

单击屏幕底部工具栏中的 UIBarButtonItem 后,我开始使用WEPopoverController 显示一些控件。弹出框显示正常,并且弹出框内的控件可以正常工作,但是一旦显示弹出框,它所锚定的 UIBarButtonItem 就会消失!

这是显示的代码,非常简单:

WEPopoverController *wePopover = [[WEPopoverController alloc] initWithContentViewController:audioController];
[wePopover setPopoverContentSize:CGSizeMake(200, 150)];
[wePopover presentPopoverFromBarButtonItem:voiceButton permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

如果我使用 presentPopoverFromRect,它会起作用,但这不是理想的解决方案。

有人遇到过这个问题吗?

【问题讨论】:

你解决过这个问题吗?我在这里遇到同样的问题。此外,箭头永远不会正确指向按钮。 我认为我们从来没有这样做过。我最终只使用了 presentPopoverFromRect: 但我们已经改变了布局并且不再使用弹出框。祝你好运。 我也有这个问题,这是 Github 上的这个问题:github.com/werner77/WEPopover/issues/26 【参考方案1】:

我猜问题出在类别类 UIBarButtonItem(WEPopover) 上,它实现了- (CGRect)frameInView:(UIView *)v。 在此过程中,自定义视图被取消,之后不会返回到视图层次结构。 如果您尝试使用标准 barButtonItem(无自定义视图),则弹出框将正确显示,而不会隐藏该项目(但这不是解决方案)。 无论如何,从 rect 呈现也是我使用的解决方案。

【讨论】:

以上是关于WEPopoverController presentPopoverFromBarButtonItem 导致指定的 UIBarButtonItem 消失的主要内容,如果未能解决你的问题,请参考以下文章

sh Ubuntu ISO与preseed.cfg生成脚本

ini http://www.instalinux.com/download/preseed1132.txt

Cobbler+preseed自动化安装Ubuntu18/19系统

ubuntu14.04基于preseed批量分发环境搭建

运维部署自动化实践(二)PXE+Preseed自动安装Ubuntu16.04 server

ini Ubuntu Preseeding安装参考:https://help.ubuntu.com/13.10/installation-guide/example-preseed.txt