2011-04-23 93 views
0

我視圖層次是這樣的:解僱 - 優雅的溶液

  1. 自定義視圖控制器(說視圖控制器1)從應用程序委託所示。從視圖控制器顯示模態
  2. 另一個視圖控制器(說視圖控制器2)1.
  3. 另一個視圖控制器(說視圖控制器3)從視圖控制器顯示模態2.
  4. 還有一個視圖控制器(說視圖控制器4)從中我需要按照步驟2 & 3.

現在在一些活動,我需要取消整個模態視圖層次結構。那麼,我做的是,我從視圖控制器3對事件發送通知和listeneing此通知在視圖控制器,然後執行:

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"cancelViews" object:nil]; 

這工作,但有一個問題。根據我的應用程序流程,我將結束在視圖控制器1和視圖控制器4處註冊此通知。現在,當視圖控制器1的整個模態層次結束時,通知由VC1註冊,然後在另一個視圖層次結構的頂部顯示視圖控制器4,最後當通知被拋出時,我的視圖層次消失。

我只想讓我最上面的視圖層次結構消失。任何解決方案,這將真正幫助。

回答

1

Usedelegates

如果這不是您想要的路線(儘管我強烈建議您這樣做),您可以設置您的1和4視圖控制器來發布您的根視圖控制器將聽的不同事件。

+0

由於一些技術挑戰,我沒有采取委託路徑。你是什​​麼意思的不同事件?如果您正在討論不同的通知名稱,那麼它將無法幫助,因爲通知將在相同的地方分派。所以,而不是一個,然後我會發布2通知。一樣的地方!!! – Abhinav 2011-04-24 04:04:38

+0

你看過UINavigation控制器嗎?可能有解決方案。 – TheBlack 2011-05-14 03:34:25