2016-08-02 64 views
0

辞退查看控制器,以便我有三个ViewControllers:A,B和C.我有火力ViewController B中的监听器启动时,如果您目前在ViewController C,它应该解雇ViewControllerÇ然而,如果你是在ViewController B,它不应该解雇回ViewController A.我到目前为止的代码是:如何从另一个

self.parentViewController?.dismissViewControllerAnimated(true, completion: nil) 

这是ViewController B的听众我有这样的问题是如果我在ViewController B,它将驳回它。我要补充这个代码(如某些类型的if语句)来检查,如果用户目前在他的设备上ViewController C,然后关闭那些,否则,什么都不做。

+0

关闭监听器,当你在视图控制器 –

+0

你可以尝试,如果你是在一个特定的视图控制器一个变量设置为某个值,并且只能调用上面的代码,当该变量具有特定的值。 –

+0

简而言之,您所说的是B版观察Firebase。如果用户在视图C中并且视图B收到事件,则视图C应该关闭。如果他们在视图B或视图A中,则什么也不做。正确? – Jay

回答

0

也许你可以做这样的事情:

if(self.parentViewController?.isKindOfClass(ClassToDismiss){} 
+0

喜,说:“有点”的工作,但创造了很多的bug 。我想使用父视图控制器,并尝试其他的东西,如if语句说,如果我目前在这个视图控制器,然后解雇,否则不希望NG。 – Ryan

+0

或者也许因为视图控制器B是展示视图控制器C,是有什么样,如果视图控制器C是由B中,然后做到这一点,如果不是......只是spitballing的想法,不知道什么是正确的。 – Ryan

+0

也许如果你有持有原先视图控制器的变量: VAR previousViewController =的UIViewController(),所以在这里的ViewController您出示其他,做viewcontroller.previousViewController =自我。 – KNV