在 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
样式显示。我已经能够使用一个 UIViewController
和 UITableViewController
子类显示一个按钮和一个 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的主要内容,如果未能解决你的问题,请参考以下文章