2016-08-02 22 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