在 iPad 的同一视图中加载多个 popOver

Posted

技术标签:

【中文标题】在 iPad 的同一视图中加载多个 popOver【英文标题】:loading multiple popOver in the same view for iPad 【发布时间】:2013-08-02 06:30:13 【问题描述】:

我是一名新手 ios 开发人员,这是我的第一个特定于 ipad 的项目。我在 UIPopOverControl 类实现方面遇到了一些问题。在我的项目中,我有一个View controller 子类,在那个视图中我有几个按钮。我需要做的是在按下按钮后显示一个带有UIPopOvercontrol 类的弹出框。弹出框中显示的数据对于点击不同的按钮会有所不同,所有数据都将以UITableView 样式显示。我已经能够使用一个 UIViewControllerUITableViewController 子类显示一个按钮和一个 popOver 并从 nib 文件加载数据。但是我怎样才能执行我想要的任务呢??

提前致谢

【问题讨论】:

【参考方案1】:

在您的应用程序中,不需要使用多个UIPopoverViewController,您也可以使用单个UIPopoverViewController

简单地创建UIPopoverViewController的新类; 并在UIPopoverViewController 中创建UITableView

在您的应用程序中,您有多个UIButton,只需提供每个按钮的tag 并将您的数据库传递给按钮的tag,并在UITableView 上显示此数据。

【讨论】:

2 个问题..1)我可以使用单个 UItableViewController 子类以 uitableview 格式显示所有不同的数据吗?2)我认为我需要以编程方式创建 UItableView 而不是 xib 文件吗?? 在你的popoverViewController中只使用一个UITableView,所以数据是基于UIButton的标签传递的。当您点击特定按钮时,您会使用单个 UITableView 创建 popOverView,并且所有数据都显示在 UITableView 上。 (数据与按钮的标签有关).. :) 我认为最好以编程方式创建 UITableView :)【参考方案2】:

iOS 故意限制一次只能看到一个 Popover。 API 本质上旨在防止同时打开多个。您将需要考虑满足您要求的替代方法。

【讨论】:

我想我还不够清楚。我不需要同时加载所有弹出窗口。我需要在点击一个按钮后使用一个弹出窗口,但在同一个视图中会有多个按钮和不同数据的弹出窗口【参考方案3】:

我已经在这里完成了要求。 看一下这个。 肯定会对你有所帮助。Code for showing 2 popViewController at the same time and different data in both

您可以在 AppDelegate 中设置一个变量来检查按下了哪个按钮? 然后,在控制器的 viewWillAppear 中,获取该变量的引用并检查按下了哪个按钮?

然后根据 cellForRowAtIndexPath 中的要求重新加载数据。

希望对你有帮助

AppDelegate.h

@interface AppDelegate : UIResponder

@property int buttonPressed; // 在点击任何按钮时设置它

@结束

你的控制器.h

int buttonPressed;

你的控制器.m

(void) viewWillAppear:(BOOL)动画

AppDelegate *app = (AppDelegate *) [[UIApplication sharedApplication] 委托];

buttonPressed = app.buttonPressed;

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

if (buttonPressed == 1) // 这样做

else if (buttonPressed == 1) // 这样做

else  // do this

【讨论】:

OP不需要同时显示多个UIPopoverViewController,先看问题:)谢谢

以上是关于在 iPad 的同一视图中加载多个 popOver的主要内容,如果未能解决你的问题,请参考以下文章

iOS5,popover 失去高度

关闭 Popover 并重新加载 parentViewController

我看不到popover segue

如何删除 iPad 的 Popover 箭头及其边框

带有 PopOver 控件的 IPad 按钮下拉菜单

UIPopOverController 出现在错误的地方