2014-03-06 66 views
0

我已經做了一些搜索,但沒有幫助我找到我正在尋找的答案。UISearchBar在兩個視圖控制器

我的應用程序有一個UITabBarController,它允許用戶在屏幕之間切換。

有兩個界面

TAB1:的viewController A - 這是UIViewController一個子類。它的頂部有一個UiSearchBar,下面還有其他不相關的內容。

表2:viewController B - 是UITableViewController的子類,也符合UISearchBarDelegateUISearchDisplayControllerDelegate

此視圖在頂部有一個UISearchBar and DisplayController

的是什麼,我想在我的應用程序工作:

當用戶開始在一個的viewController搜索 - 某些結果將顯示在搜索欄下方。然後,當用戶點擊搜索結果時,viewController B將出現在屏幕上並顯示結果。這將允許我篩選並安排結果,因爲我認爲合適。

如果有人看到最新版本的eBay iOS應用程序 - 搜索功能就是我正在努力的工作。

* 的問題*

我並不擔心搜索的工作方式以及過濾作品等如何我想知道的是如何鏈接第一的UISearchBar顯示結果,並把用戶有什麼查看控制器B - 用他們的搜索條件?

如果我看看eBay應用程序 - 它幾乎像酒吧是保持搜索文本一樣的實例。

如果任何人都可以指出我正確的方向,我會很感激。

謝謝!

回答

0

我想: 寫一個協議,XYZ在UIViewController一個

子類的UITabBarController,並使其符合XYZ

用戶UIViewController A按搜索結果後,送委託(您UITabBarController)一消息並讓他處理數據(搜索對象或任何您需要的數組)傳輸並切換到UIViewController B

查看有關在UIViewControllers之間傳輸數據的SA問題: Passing Data between View Controllers

+0

謝謝你。我今晚會做一些閱讀,看看它能否幫助我解決我面臨的問題。 – Tander

0

在控制器之間傳遞數據對於簡單的程序工作正常,但我發現它變得混亂,因爲應用程序變得更加複雜。另一種方法是創建一個真正的數據模型... MVC中的'M'。

允許訪問應用程序狀態的主模型類可以是具有sharedInstance的單例或應用程序委託所擁有的唯一對象。採用這種結構,控制器之間不會直接傳輸數據。相反,任何需要更改狀態的控制器都會告訴Model執行此操作,並且任何需要知道狀態的控制器在顯示或更新視圖時都會詢問Model。

+0

該應用程序從Web服務獲取99%的數據。我已經有了一個用於模型的單例類 - 它執行web服務並允許我訪問我需要的持久數據。將數據從視圖傳遞到視圖我主要使用segues和展開segues。我也會研究其他選項。謝謝 – Tander

+0

使用數據模型方法,您仍然使用所有相同的導航邏輯(segue ...)。主要區別在於控制器不相互依賴於顯示內容;他們獨立應對應用程序狀態的變化。 –

相關問題