我做了一些搜索但没有帮助我找到我想要的答案。
我的应用程序有一个UITabBarController,允许用户在屏幕之间切换。
有两个屏幕
Tab1:viewController A - 是UIViewController
的子类。它的顶部有一个UiSearchBar,下面有其他非相关内容。
Tab2:viewController B - 是UITableViewController
的子类,也符合UISearchBarDelegate
和UISearchDisplayControllerDelegate
。
此视图顶部有UISearchBar and DisplayController
。
我希望在我的应用中使用
当用户在viewController A中开始搜索时 - 某些结果将显示在搜索栏下方。然后,当用户点击搜索结果时,viewController B将出现在屏幕上并显示结果。这样我就可以根据需要过滤和排列结果。
如果有人看过最新版的eBay iOS应用程序 - 搜索功能就是我想要的功能。
* 问题*
我并不担心搜索是如何工作的以及过滤是如何工作的等等。我想知道的是如何链接第一个UISearchBar以显示结果并将用户带到viewController B - 用他们的搜索条件?
如果我查看eBay应用程序 - 它几乎就像条形图一样保存搜索文本。
如果有人能指出我正确的方向,我真的很感激。
谢谢!
答案 0 :(得分:0)
我愿意:
在UIViewController
A
对您的UITabBarController
进行子类化并使其符合XYZ
用户在UIViewController
A中按下搜索结果后,向代理人(您的UITabBarController
)发送一条消息,让他处理数据(搜索对象的数组或您需要的任何内容)传输和切换到UIViewController
B
在SA上查看有关在UIViewControllers之间传输数据的问题: Passing Data between View Controllers
答案 1 :(得分:0)
在控制器之间传递数据对于简单的程序工作正常,但我发现随着应用程序变得更加复杂,它会变得混乱。另一种方法是创建一个真实的数据模型...... MVC中的“M”。
提供对应用程序状态的访问权限的主要模型类可以是具有sharedInstance
的单例,也可以是由应用程序委托拥有的唯一对象。使用该结构,控制器之间不会直接传递数据。相反,任何需要更改状态的控制器都会告诉Model执行此操作,并且任何需要知道状态的控制器在显示或更新视图时都会向Model询问它。