我有一个包含大量单元格的UItableView。每个细胞都与不同类型的popovers相关联。当我触摸一个单元格时,将显示一个弹出窗口。当我触摸tableview的另一个单元格时,我想要关闭现有的popover,并且我将显示与所选单元格相对应的popover。
但是,当我触摸弹出窗口外的区域时,现有的弹出窗口被解除但我无法检索我选择的单元格索引。有没有办法解雇现有的popover并在ipad中一次性显示另一个popover?
答案 0 :(得分:4)
解决了问题
我通过将popover的passthroughView设置为我想要显示popover的tableview来获得解决方案。
答案 1 :(得分:0)
我遇到了类似的问题,但我无法使用passthroughView,因为我希望我的新popover可以使用旧的popover。所以我使用了setContentViewController方法。
我有一个SplitViewController,它在popoverController中显示SettingsViewController,当用户点击SettingsViewController中的按钮时,它可以在同一个popover中显示LoginViewController。
此方法位于SplitViewController:
中- (void)showLoginViewController
{
if ( ! _myPopoverController.isPopoverVisible) {
_myPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.loginViewController];
[_myPopoverController presentPopoverFromRect:popoverOriginRect inView:self.view permittedArrowDirections:0 animated:YES];
}
else {
[_myPopoverController setContentViewController:self.loginViewController animated:YES];
}
}
我在SplitViewController中有一个属性:
@property (nonatomic, strong) UIPopoverController *myPopoverController;
必须不创建_myPopoverController的新实例,而是在旧实例中设置ContentViewController。将PopoverController存储在强属性中是一种很好的做法,因为在可见时不能释放它。