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

时间:2013-08-02 06:30:14

标签: ios ipad uitableview uipopovercontroller

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

提前致谢

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在您的应用中,不需要使用多个UIPopoverViewController,您也可以使用单个UIPopoverViewController执行此操作。

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

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

答案 2 :(得分:0)

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

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

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

希望这有帮助

AppDelegate.h

@interface AppDelegate:UIResponder

@property int buttonPressed; //点击任意按钮

设置

@end

YourController.h

int buttonPressed;

YourController.m

  • (void)viewWillAppear:(BOOL)animated

{

AppDelegate * app =(AppDelegate *)[[UIApplication sharedApplication] delegate];

buttonPressed = app.buttonPressed;

}

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

{

if(buttonPressed == 1){// do this}

else if(buttonPressed == 1){// do this}

else  // do this

}