3

我是iPad开发人员的新手,

UIPopover在我的应用程序中使用,当我选择弹出窗口中的任何行时,我的弹出窗口没有隐藏它仍然在视图中,当我触摸屏幕上的任何地方时它会隐藏。

我想在用户选择任何行后隐藏弹出框。

这是我的代码片段,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
    for(int index=0;index<=indexPath.row;index++)
    {
        UITableViewCell *cell =[tableView cellForRowAtIndexPath:indexPath];
        lbl.text=cell.textLabel.text;
    }
}

逻辑:当我选择任何一行弹出框时,相应的文本将被提取并存储到标签中。

任何帮助将不胜感激。

编辑

UIViewController* popoverContent = [[UIViewController alloc]init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(110, 0, 500, 4)];

popoverPolicyNameTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 250, 200) style:UITableViewStylePlain];// size of tableview inside popover

[popoverPolicyNameTable setDelegate:(id<UITableViewDelegate>)self]; 
[popoverPolicyNameTable setDataSource:(id<UITableViewDataSource>)self]; 
[self.view addSubview:popoverPolicyNameTable];
[popoverPolicyNameTable release];

[popoverView addSubview:popoverPolicyNameTable];
popoverContent.view = popoverView;
popoverContent.contentSizeForViewInPopover = CGSizeMake(250, 200); //size of popover border
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];

[self.popoverController  presentPopoverFromRect:CGRectMake(350,100, 35, 35) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; //size of arrow

[popoverContent release];
[popoverView release];
4

4 回答 4

1

在具有您的类中添加一个变量UITableView

id parent;

然后属性并合成它:

@property(nonatomic, retain) id parent;

@synthesize parent;

然后你在哪里创建这个对象ViewController来添加Popovercontroller,像这样

myTableViewController.parent = myPopoverControllerObject;

现在在didSelectRowAtIndexPath

[parent dismissPopoverAnimated:YES];

你完成了!

于 2012-07-05T12:41:25.487 回答
1

你需要实现这样的东西

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController1{

    [self.popoverController dismissPopoverAnimated:YES];
    self.popoverController=nil;

}
于 2012-07-05T13:07:37.993 回答
0

使用委托并通知您的委托用户在列表中选择了一个项目。委托将知道如何关闭视图控制器。

这种方法更好,因为它与容器无关,并且您可以在弹出框之外重用视图控制器:例如,在 iPhone 上使用导航控制器

于 2012-07-05T12:50:13.497 回答
0

将 Popover 控制器设为类成员变量。

然后点击表格视图点击方法调用popovercontoller的dismiss方法。

于 2012-07-06T07:37:59.870 回答