我正在使用的應用程序有三個選項卡,都有一個搜索欄,用戶可以在任何選項卡上啓動搜索。當搜索開始時,SerchViewController
被壓入每個相應的堆棧。目前,當用戶在標籤之間切換時,有三種不同的搜索正在進行。如何確保只有一個SearchVC
處於活動狀態,並且當用戶在其他選項卡上開始搜索時,其他SearchVC
會從前一選項卡中彈出堆棧?當一個特定的ViewController類被推入到另一個選項卡的堆棧中時,如何從堆棧中彈出視圖控制器?
我怎樣才能:
1)保持對堆棧中的一個的參考到現有SearchVC
例如,
2)接收來自另一導航控制器堆棧通知如果SearchVC
提出,
3)並在之前的堆棧中彈出(以及所有跟隨的VC)?
例如:
用戶輕敲第一選項卡,堆棧構建是這樣的:
UITabBarController
- >UINavigationController
- >ProfileVC
- >GalleryVC
- >SearchVC
- >(理論上,從SearchVC
堆可以建立幾乎無限) - >ProfileVC
從搜索結果 - >GalleryVC
- >LikesVC
- >ProfileVC
- >等
用戶敲擊第二選項卡,堆棧構建是這樣的:
UITabBarController
- >UINavigationController
- >LibraryVC
- >SearchVC
- >再次,堆棧可以從這裏幾乎無限地建立。我需要在第一個標籤中彈出SearchVC
,因此在標籤之間切換時只有一個SearchVC
。當用戶返回到第一個選項卡時,它應該將用戶帶到用戶開始搜索之前的GalleryVC
或VC,並將SearchVC
推入堆棧。