iOS - Storyboard - 弹出的委托
我在我的 ipad 应用程序中使用情节提要,并成功地能够进行过渡、使用 segues 等。 目前,我通过单击按钮显示弹出视图控制器。我想检测弹出窗口何时消失。 我该怎么做呢?
I'm using storyboard in my ipad application and successfully able to do transitions, use segues etc.
Currently I am showing pop over view controller on click of a button. I want to detect when the pop over dismisses.
How can I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这是我所做的:
Here is what I did:
UIPopoverController
现在,我发现您正在谈论
UIPopoverController
,步骤如下:使用适当的委托设置
UIPopoverController
(我假设“发送者”视图控制器)让您的“sender”符合
UIPopoverControllerDelegate
实现
– popoverControllerDidDismissPopover:
消息并在此处提供任何检测逻辑实现
-prepareForSegue:sender:
并使用 segue 的destinationController
来获取引用并设置委托,如下所示:((MyViewController*)segue.destinationController).delegate = self;
模态视图控制器
-prepareForSegue:sender:
(请参阅UIViewController文档
)prepareForSegue:sender:
中将发送视图控制器分配为模式视图控制器的委托:dismissModalViewControllerAnimated 之前或之后立即在委托上调用所需的方法:
这就是我的处理方法。我还建议有一个正式的协议来符合您的发送视图控制器。
UIPopoverController
Now with my revelation that you're talking about a
UIPopoverController
, here are the steps:Setup the
UIPopoverController
with an appropriate delegate (I'm assuming the "sender" view controller)Have your "sender" conform to the
UIPopoverControllerDelegate
Implement the
– popoverControllerDidDismissPopover:
message and have any detection logic hereImplement
- prepareForSegue:sender:
and use the segue'sdestinationController
to both get a reference and set the delegate, something like below:((MyViewController*)segue.destinationController).delegate = self;
Modal View Controller
- prepareForSegue:sender:
(refer to theUIViewController documentation
)prepareForSegue:sender:
dismissModalViewControllerAnimated:
That is how I would approach this. I would also recommend having a formal protocol to conform your sending view controller with.
在视图控制器中创建一个segue:
在 XIB 中,为视图创建一个名为“popover”的标识符。
在界面中,编写以下代码:
通过编码编写以下代码以消除弹出窗口:
Create a segue in view controller:
In XIB, create an identifier called "popover" for the view.
In Interface, write the following code:
Write the following code to dismiss the pop over by coding:
由于
UIStoryboardPopoverSegue
在 iOS 9 中已弃用,因此您可以使用UIStoryboardPopoverPresentationSegue
。然后在
prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
中,您可以像这样设置委托:Swift:
Since
UIStoryboardPopoverSegue
is deprecated in iOS 9, you can use aUIStoryboardPopoverPresentationSegue
.Then in
prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
you can set the delegate like this:Swift:
该问题的 Objective-C 代码如下。
An Objective-C code for the question is below.