Ios 打开时如何启用外部触摸?
我的应用程序正在使用popover。我想在打开时启用外部触摸。现在我无法触摸popoverview的外部,当我单击popoverview的外部时,它会消失 这是我想做的屏幕截图。我在故事板中使用PopoOverSegue 我如何处理这个问题 谢谢你的帮助Ios 打开时如何启用外部触摸?,ios,segue,uipopover,Ios,Segue,Uipopover,我的应用程序正在使用popover。我想在打开时启用外部触摸。现在我无法触摸popoverview的外部,当我单击popoverview的外部时,它会消失 这是我想做的屏幕截图。我在故事板中使用PopoOverSegue 我如何处理这个问题 谢谢你的帮助 您可以使用直通视图实现相同的功能 yourPopoverController.passthroughViews = [NSArray arrayWithObjects:viewToEnableTouch, nil]; passthroughv
您可以使用
直通视图
实现相同的功能
yourPopoverController.passthroughViews = [NSArray arrayWithObjects:viewToEnableTouch, nil];
passthroughview
属性
用户可以在打开popover时与之交互的视图数组
看得见的声明
Swift
var passthroughview:[AnyObject]?
目标-C
@property(非原子,复制)NSArray*passthroughview
讨论
当popover处于活动状态时,通常会停止与其他视图的交互
禁用,直到弹出框被解除。指定视图数组
此属性允许用户处理popover之外的点击
相应的视图。进口声明
导入UIKit
可用性
在iOS 3.2及更高版本中提供
参考文献
如果您不想在用户单击外部时关闭popover,则可以通过以下方式实现:
- (BOOL) popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
return NO;
}
以下是使用SWIFT对我有效的方法。它将允许您与“doneBtn”以及“myMap”交互
谢谢。它可以帮我完成任务,但我没有popovercontroller课程。我用爆米花。如何在我的项目中导入此代码。@fozoglu:在prepare for segue中,您可以像这样获得它:UIPopoverController*popover=[(UIStoryboardPopoverSegue*)segue popoverController];我得到一个错误viewToEnableTouch->使用未声明的identifier@fozoglu:这是我输入的虚拟值。您需要将您的实际视图放在那里(类似于self.view)对不起。我很困惑。我创建了一个简单的项目。我在故事板中添加了两个按钮,只有一个按钮连接PopoOverSegue。我创建了两个UIViewController类第一个ViewController第二个MyPopoverController。在ViewController中导入MyPopoverController,然后我该怎么做?
@IBOutlet weak var myMap: MKMapView!
func showPopover() {
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var popOverVC: popVC = storyboard.instantiateViewControllerWithIdentifier("popVC") as popVC
popOverVC.modalPresentationStyle = .Popover
popOverVC.preferredContentSize = CGSizeMake(self.myMap.frame.width, self.myMap.frame.height)
if let pop = popOverVC.popoverPresentationController {
var passthroughViews: [AnyObject]?
passthroughViews = [doneBtn, myMap]
pop.passthroughViews = NSMutableArray(array: passthroughViews!)
pop.permittedArrowDirections = .Any
pop.sourceView = myButton
pop.delegate = self
pop.sourceRect = CGRect(
x: 0,
y: 0,
width: 10,
height: 10)
}
self.presentViewController(
popOverVC,
animated: true,
completion: nil)
}