我是iPad
开发人员的新手,
我在我的应用程序中使用UIPopover
,当我选择弹出窗口中的任何行时,我的弹出窗口仍未隐藏在视图中,当我触摸屏幕外的任何位置时它会隐藏。< / p>
我希望在用户选择任何行后隐藏popover。
这是我的代码段,
- (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;
}
}
逻辑:当我选择任何一行popover时,将获取相应的文本并将其存储到标签中。
我们将不胜感激。
修改
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];
答案 0 :(得分:1)
在Class中添加一个包含UITableView
:
id parent;
然后属性并合成它:
@property(nonatomic, retain) id parent;
@synthesize parent;
然后,您要在ViewController
中创建要添加的Popovercontroller
对象,请执行以下操作
myTableViewController.parent = myPopoverControllerObject;
现在在didSelectRowAtIndexPath
:
[parent dismissPopoverAnimated:YES];
你完成了!!!
答案 1 :(得分:1)
你需要实现类似这样的东西
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController1{
[self.popoverController dismissPopoverAnimated:YES];
self.popoverController=nil;
}
答案 2 :(得分:0)
使用委托并通知您的委托用户选择了列表中的项目。代表将知道如何关闭视图控制器。
这种方法更好,因为它与容器无关,您可以在弹出窗口外重用视图控制器:例如,在iPhone上使用导航控制器
答案 3 :(得分:0)
将Popover控制器设为类成员变量。
然后单击表视图,单击该方法调用该popovercontoller的方法。