2013-04-30 63 views
1

我已經嘗試了下面的兩種方法將SearchBar放在UITableView上。UITableViewController with SearchBar

  1. TabBarController>的UITableViewController(將搜索欄)
  2. TabBarController>的UIViewController>的UITableViewController(將搜索欄)

當我嘗試了第二種方式,那麼它不工作。 (SearchBar無法顯示在UITableViewController上)

誰能告訴我發生了什麼?

這裏是我的Xcode項目文件: http://www2.zshares.net/tg14vowqzvaw

+1

有大量的教程可用或關於此。爲什麼不在谷歌上搜索「搜索欄iphone教程」? – 2013-04-30 12:37:12

+0

是的,我可以在互聯網上找到很多教程。這些教程無法解釋這個問題。 – 2013-04-30 14:04:55

+0

沒有人這意味着你沒有找到很好,我已經看到很多相信我:),你知道他們會告訴你的方式比你在這裏得到的任何答案更多。有人已經提出了你的問題,但我會彌補,我不想讓你感到沮喪 – 2013-05-01 04:58:48

回答

2

通常的方式做這將是把saerch欄中的UITableView的它應該尋找的報頭部分。您可以使用來自的UITableViewDelegate-協議的

-tableview: viewForHeaderInSection: 

方法做到這一點。他的作品在TableViewControllers和正常ViewController上都有一個TableView。請參閱iPhone上的郵件應用程序以獲取此示例。 如果你真的需要搜索欄在tableview之外,那麼你將不得不使用常規的視圖控制器,只需將搜索欄放在tableView上方/下方的視圖中。 除此之外,我不知道該告訴你什麼。什麼是TabbedViewController?你的意思是TabBarController?這與搜索欄有什麼關係?我有點缺乏時間來完成你的項目,所以如果你重新提出這個問題,也許我可以給出更好的答案?

編輯--------------------------------------------- --------

tableviewcontrollers會爲你做到這一點。基本上,他們將允許一次一個tableview在他們的內部。此外,該tableview將始終填寫可用的整個空間。現在,您可以利用這個例外:像NavigationBar或TabBar這樣的元素可以在tableview旁邊使用,因爲它們是導航所必需的。所以如果你可以把你的東西放在其中之一,那就完全沒問題。這看起來有點違反直覺,因爲我什麼時候只需要在我的屏幕上進行裸體桌面瀏覽?答案是:往往不是。使用此處指定的UITAbleVIewDelegate協議,可以高度定製桌面視圖: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate 幫你一個忙,閱讀該文檔,我幾乎可以保證從長遠來看可以節省時間。 例如:你知道iphone上的聯繫人應用程序?如果您深入瞭解某個特定聯繫人的詳細信息,您會發現這些數據的複雜表現形式,如果您點擊編輯,甚至會進入編輯模式。它有一個標題,多個段和一個頁腳。 驚喜:所有這些只是tableviewcontroller中的一個tableview,通過協議進行定製。讓我重複一遍:如果你試圖以其他方式去做,你正在浪費自己的時間。 tableviewcontrollers存在的原因。使用它們

+0

感謝您的建議。這是我的錯誤,那就是TabBarController。我只想修復TableView上方的SearchBar。我想我會嘗試定期查看控制器。坦率地說,我仍然困惑。爲什麼SearchBar可能以第一種方式工作?無論我做什麼,SearchBar都是TableViewController的核心。 – 2013-04-30 14:00:29