gpt4 book ai didi

swift - 触摸后关闭 Popover

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:24 24 4
gpt4 key购买 nike

当使用 UIPopoverPresentationController 触摸某个按钮时,我在我的 MainViewController 中创建了一个弹出窗口,并将其设置为委托(delegate),就像在 WWDC 2014 中显示的那样,如下所示方式:

MainViewController.swift

class MainViewController : UIViewController, UIPopoverPresentationControllerDelegate {

@IBAction func showPopover(sender: AnyObject) {

var popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("PopOverViewController") as UIViewController

popoverContent.modalPresentationStyle = UIModalPresentationStyle.Popover
var popover = popoverContent.popoverPresentationController

popoverContent.preferredContentSize = CGSizeMake(250, 419)
popover!.delegate = self
popover!.sourceView = self.view
popover!.sourceRect = CGRectMake(180,85,0,0)

self.presentViewController(popoverContent, animated: true, completion: nil)
}
}

弹出窗口内部有一个 View ,当使用点击手势识别器单击 View 时,我使用模态转场显示 LastViewController,模态转场是通过界面生成器创建的,而不是在代码中使用呈现另一个 LastViewController

的操作

一旦 LastViewController 被关闭并且我回到 MainViewController 中,弹出窗口将保持打开状态。

PopOverController 中,我只有默认代码。

LastViewController.swift

@IBAction func dismissVIew(sender: AnyObject) {        
self.dismissViewControllerAnimated(true, completion: nil)
}

上面的代码用于在触摸内部按钮后关闭 LastViewController

Storyboard

enter image description here

如何在另一个 LastViewController 可见时或在打开另一个 LastViewController 之前关闭弹出窗口?

提前致谢

最佳答案

我已经在 here 上回答了同样的问题.
场景不同但解决方案相同

您必须编写代码以在当前 View Controller 完成时关闭呈现的 View Controller 。
LastViewController.swift

的 dismissVIew 方法上编写以下代码
 var tmpController :UIViewController! = self.presentingViewController;

self.dismissViewControllerAnimated(false, completion: {()->Void in
println("done");
tmpController.dismissViewControllerAnimated(false, completion: nil);
});


下载 link

关于swift - 触摸后关闭 Popover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28224059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com