Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 知道ViewController是因为解雇而出现的(不是segue)_Iphone_Ios_Ipad_Segue_Dismiss - Fatal编程技术网

Iphone 知道ViewController是因为解雇而出现的(不是segue)

Iphone 知道ViewController是因为解雇而出现的(不是segue),iphone,ios,ipad,segue,dismiss,Iphone,Ios,Ipad,Segue,Dismiss,我试图弄清楚如何在我的rootViewController中获取一个刚刚解散的类。我有几个选项可以返回到我的rootViewController,我需要知道它是否来自一个实例,以便相应地更改一些UI 我正在寻找类似于[self-presentingViewController]的东西,除了viewController因为解雇而不是一个segue而出现的时候。是否有内置的方法获取此信息?更新 这个答案中的所有内容都是老生常谈——因为XCode 4.5,我们可以使用展开分段返回到以前的任何viewC

我试图弄清楚如何在我的rootViewController中获取一个刚刚解散的类。我有几个选项可以返回到我的rootViewController,我需要知道它是否来自一个实例,以便相应地更改一些UI

我正在寻找类似于
[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属性。谢谢大家,这太完美了!