在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框

Posted

技术标签:

【中文标题】在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框【英文标题】:dismiss popover in ios on didSelectRowAtIndexPath 【发布时间】:2016-09-03 09:24:02 【问题描述】:

我有一个弹出框,它在导航栏按钮上弹出,并且该弹出框包含一个表格视图。 ios中如何在tableview的didSelectRowAtIndexPath方法上关闭popover?

【问题讨论】:

你能在你弹出Popup的地方显示代码吗? @NDoc ioscreator.com/tutorials/display-popovers-on-the-ipad 检查此代码 【参考方案1】:

如果您的意思是 tableView 在该弹出框内,并且您的弹出框控制器是这样实例化的:

Objective-C

在包含的控制器中,将它放在它的顶部:

@property (nonatomic,strong) UIPopoverController *popOver;

//this is the content of the popover
MyTableVC *tableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"myTableView"];
//this is the navigation controller of your tableViewController
UINavigationController *popNav = [[UINavigationController alloc] initWithRootViewController:tableVC];
//this is you popover
self.popOver =[[UIPopoverController alloc] initWithContentViewController:popNav];

然后您必须在创建弹出框的 viewController 中将其关闭,在本例中为 popNav。

所以在你的 MyTableVC 类中你需要在 didSelectRowAtIndexPath 方法中调用这个方法:

[self dismissViewControllerAnimated:YES completion:nil];

【讨论】:

pedrouan ioscreator.com/tutorials/display-popovers-on-the-ipad 我正在使用类似这样的东西 我知道@rva,我的解决方案适合它。不要忘记应用属性(非原子,强) UIPopoverController *popOver;【参考方案2】:

你可以使用

Obj-c

[popoverController dismissPopoverAnimated:YES];

斯威夫特

popoverController.dismissPopoverAnimated(true)

【讨论】:

以上是关于在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框的主要内容,如果未能解决你的问题,请参考以下文章

tableView - didSelectRowAtIndexPath 未调用

在 didSelectRowAtIndexPath 中呈现缓慢的 ViewController

我可以麻烦UITableViewDelegate的didSelectRowAtIndexPath:吗?

在 didselectRowAtIndexPath 之后 UITableView 无法滚动底部

在 tableView 上使用 CustomCell,如何调用 didSelectRowAtIndexPath?

didSelectRowAtIndexPath 不会在 ViewController 中触发