Iphone 知道ViewController是因为解雇而出现的(不是segue)
我试图弄清楚如何在我的rootViewController中获取一个刚刚解散的类。我有几个选项可以返回到我的rootViewController,我需要知道它是否来自一个实例,以便相应地更改一些UI 我正在寻找类似于Iphone 知道ViewController是因为解雇而出现的(不是segue),iphone,ios,ipad,segue,dismiss,Iphone,Ios,Ipad,Segue,Dismiss,我试图弄清楚如何在我的rootViewController中获取一个刚刚解散的类。我有几个选项可以返回到我的rootViewController,我需要知道它是否来自一个实例,以便相应地更改一些UI 我正在寻找类似于[self-presentingViewController]的东西,除了viewController因为解雇而不是一个segue而出现的时候。是否有内置的方法获取此信息?更新 这个答案中的所有内容都是老生常谈——因为XCode 4.5,我们可以使用展开分段返回到以前的任何viewC
[self-presentingViewController]
的东西,除了viewController因为解雇而不是一个segue而出现的时候。是否有内置的方法获取此信息?更新
这个答案中的所有内容都是老生常谈——因为XCode 4.5,我们可以使用展开分段返回到以前的任何viewController,并在该控制器中触发展开方法。(谢谢@rdelmar)
老路。。理想情况下,这需要委托实现特定的方法 当一个类自行解散时,您无法抓住它,因为它是。。。解雇。你需要在它被解雇之前掌握它,然后了解解雇的情况 稍微详细说明一下,类通常不会自行解散,它们所属的类会自行解散。此处的混淆方法可能是UIViewController方法:
- (void) dismissViewControllerAnimated:
这是
- (void) [[self presentingViewController] dismissViewControllerAnimated:completion:nil]
演示视图控制器有一个属性presentedViewController
,该属性将保留该已解除对象,直到该对象被解除为止。当presentingViewController解除时,它会将其presentedViewController
属性重置为nil。但您始终可以选择在解除事件之前将该引用复制到另一个(强/保留)属性中,并在解除事件之后对其进行询问
引用苹果的话:
如果要保留对接收者的显示视图控制器的引用,请在调用[DismissViewControllerInitiated:completion:
]"
我基本上解决了这个问题,通过跟踪我是否访问了我担心从中删除的单视图控制器。这样,我只需在切换之前在viewController中设置一个属性,以便在返回时知道需要处理UI更改。感谢您对“放松分段”的评论。我一定会在不久的将来实现它们 不太清楚你想要什么。也许您可以检查这些方法:
从ParentViewController移动
,移动到ArentViewController
,正在解除
和正在呈现
是否有您不能使用segue的原因?对于is来说,展开segue非常好,因为您可以获得正在执行的segue的sourceViewController属性。谢谢大家,这太完美了!