关闭弹出视图
Posted
技术标签:
【中文标题】关闭弹出视图【英文标题】:Dismiss the popover view 【发布时间】:2012-11-28 11:12:03 【问题描述】:我有一个根视图控制器,我在其中加载了一个包含三个按钮的子视图。当我触摸其中一个时,会显示一个弹出框。弹出框包含一个图像视图和一个带有完成按钮的栏。触摸完成按钮时,我想关闭此弹出窗口。为此,我正在使用此代码
- (IBAction)btnDone:(UIBarButtonItem *)sender
[self.view removeFromSuperview];
[APPDELEGATE.parkDetail. popoverController dismissPopoverAnimated:YES];
// [APPDELEGATE.parkDetail.popoverController dismissPopoverAnimated:YES ];
弹出框是这样呈现的
- (IBAction)btnParkMap:(id)sender
[popoverController dismissPopoverAnimated:YES];
if ([popoverController isPopoverVisible])
[popoverController dismissPopoverAnimated:YES];
else
parkMap * v = [[parkMap alloc]initWithNibName:@"parkMap" bundle:nil];
v.contentSizeForViewInPopover = CGSizeMake(350, 300);
popoverController = [[UIPopoverController alloc] initWithContentViewController:v];
CGRect popRect = CGRectMake(self.btnShowPopover.frame.origin.x+330,
self.btnShowPopover.frame.origin.y+170,
self.btnShowPopover.frame.size.width,
self.btnShowPopover.frame.size.height);
[popoverController presentPopoverFromRect:popRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
【问题讨论】:
你在 parkMap 类上完成按钮了吗? 【参考方案1】:试试这个代码
[self dismissViewControllerAnimated:YES completion:nil];
或者试试@nirav 的回答
【讨论】:
【参考方案2】:试着写下面的代码
[yourPopOverobject dismissPopoverAnimated:YES];
让我知道它是否有效..
编码愉快!!!!!
【讨论】:
它应该可以工作的人...告诉我你是如何呈现弹出控制器的......写一些代码...... 我的视图消失了,但弹出的黑框仍然存在 好的,只需删除该代码.. [self.view removeFromSuperview];然后检查发生了什么......让我知道 我发布了另一个代码,试试那个,我在那个代码中放了一个委托方法。在那个方法中放断点,让我知道【参考方案3】:PopUpOver 可以关闭 UIWebView 的默认上下文菜单。这很简单,因为我们只需要将网页正文元素的 CSS 属性“-webkit-touch-callout”设置为“none”。我们可以在 UIWebView 委托方法“webViewDidFinishLoad:”中使用 javascript 来做到这一点……
- (void)webViewDidFinishLoad:(UIWebView *)webView
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
【讨论】:
【参考方案4】: - (IBAction)btnDone:(UIBarButtonItem *)sender
[self dismissViewControllerAnimated:YES completion:nil];
【讨论】:
【参考方案5】:尝试检查下面的代码...
if ([popoverobject isPopoverVisible])
[popoverobject dismissPopoverAnimated:YES];
[popoverobject release];
#pragma mark -
#pragma mark UIPopoverController delegate
-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
//if (popoverController == popoverobject)
[popoverobject release];
//
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
NSLog(@\"popover about to be dismissed\");
return YES;
让我知道它是否有效...
【讨论】:
在您要关闭弹出框控制器的同一类中 我已经告诉了你我所知道的一切......我认为你错过了一些代码,但你没有找到......再次检查你的代码...... readncode.com/blog/how-to-dismiss-popovers-in-ios ***.com/questions/8656348/ios-how-to-dismiss-popovers ***.com/questions/9253878/… 可能这个链接对你有帮助..试试看以上是关于关闭弹出视图的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI中sheet弹出嵌在NavigationView中的子视图无法用presentationMode关闭(dismiss)弹出视图的解决
在弹出视图之外的任何地方点击时关闭弹出视图,包括按钮、文本字段等