Storyboard & Seque:展示的 VC 如何知道展示的 VC 啥时候解散自己?

Posted

技术标签:

【中文标题】Storyboard & Seque:展示的 VC 如何知道展示的 VC 啥时候解散自己?【英文标题】:Storyboard & Seque: How does the presenting VC know when the presented VC dismisses itself?Storyboard & Seque:展示的 VC 如何知道展示的 VC 什么时候解散自己? 【发布时间】:2012-10-19 12:05:29 【问题描述】:

我的应用中有两个场景 StoryBoard - 它使用自动转场(在 IB 中创建)。当在第一个UIViewController 中单击一个按钮时,第二个UIViewController 会以模态方式呈现。

第一个UIViewController 需要知道第二个UIViewController 何时自行解散。实现这一目标的正确方法是什么?现在,我在第一个 vc 中使用-viewDidAppear:,但这似乎不对。

任何指针将不胜感激。

最好, 计算机科学

【问题讨论】:

【参考方案1】:

你在做什么,加上检查isMovingToParentViewController 是否,应该适用于这种特定情况。如果您曾经有其他从第一个触发的视图控制器并且您想要区分它们,这将无济于事。

最直接的方法是让模态控制器在它消失时发布通知。

【讨论】:

【参考方案2】:

您可以使用通知来确保您只在 vc2 解雇时执行任务。

// in vc1
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomethingWhenVC2Dismissed) name:@"vc_2_dismissed" object:nil];

// in vc2
[[NSNotificationCenter defaultCenter] postNotificationName:@"vc_2_dismissed" object:nil];

【讨论】:

【参考方案3】:

只需按照 Apple 使用 SDK 提供的 ViewController 的方式进行操作,这些 ViewController 旨在以模态方式呈现:MFMailComposer、UIImagePicker 等。

使用委托。

【讨论】:

以上是关于Storyboard & Seque:展示的 VC 如何知道展示的 VC 啥时候解散自己?的主要内容,如果未能解决你的问题,请参考以下文章

StoryBoard ID && Restoration ID

UILabel && UIButton

Storyboard & XIB 自己的理解

故事板按钮不会推动 Seque

Disclosure Indicator 不调用 seque 而 Detail Disclosure 调用

如何从多个 Storyboard 源视图控制器中呈现给定的视图控制器?