2015-07-19 91 views
0

我敢肯定,這將是一個簡單的答案,也許一個方法我缺少落實。這裏有:檢測兒童的UIViewController被彈出

在我的Controller1我使用pushViewController推新視圖Controller2到我的視圖堆棧。我收到一個後退按鈕。

現在,當我的Controller1中按下「後退」按鈕時,我希望能夠檢測到Controller2正在彈出,並且我們又回到了Controller1。說得通?

我試圖做到這一點與ViewDidAppear,但我不知道如何檢測一個彈出的控制器。還有其他答案,但他們都在Controller2viewWillDisappear

在斯威夫特我會怎麼做呢?

+0

解釋你正在嘗試做什麼,作爲這個觸發器的結果 – Wain

+0

@當我推送到Controller2時,我在''Controller1''(放大地圖)中執行一些其他操作。從''Controller2''回來時,我需要縮小地圖。地圖控制是在''Controller1''中完成的,我不想將參考傳遞給Controller2來縮小 – kernelpanic

+0

因此,當顯示C2時,您可以看到一張地圖嗎?您是使用自定義兒童演示文稿還是導航控制器?授權可能是適當的解決方案。 – Wain

回答

0

不知道更多,你應該傳遞第一個控制器的引用到第二個控制器,這樣第二個控制器可以告訴第一個控制器何時完成(這是一個簡單的委託關係,它也可以使用塊/關閉)。

理想情況下,第一控制器應負責駁回第二控制器,無論是當它到達這個回調,或者更適當地,直接在「取消」按鈕被點擊。

+0

如果按下第二個控制器的後退按鈕,第二個控制器怎麼會知道(調用委託)? – bio

+0

如果它是一個後退按鈕@bio,那麼你在導航控制器中,所以你可以使用導航控制器委託或只是視圖將消失。 – Wain