我有一个简单的问题,我希望这里有更多经验的人可以提供一些启示。
我目前正在使用 AddressBookUI 框架(基本上是 ABPeoplePickerNavigationController)来显示联系人列表,用户可以从中选择一个并向下钻取到联系人详细信息视图。很普通的东西,世界上什么都没有。
但是,一旦从 tableView 列表中选择联系人,我想修改搜索栏的颜色、部分标题和联系人视图的背景。
似乎无论我尝试什么(覆盖 UINavigationController 方法,在 viewLoaded 中加载视图时直接设置属性,循环遍历单个联系人视图中的子视图,迭代地将 backgroundColor 设置为 clearColor 并将底层视图设置为背景图像等)更改不坚持。标题/搜索栏始终为蓝色,单个联系人视图中的背景始终为细条纹蓝色/白色背景(在所有子视图的 clearColor 迭代设置的情况下,我对此行为非常不稳定,它只是感觉就像一个丑陋的黑客)。
有谁知道这是如何完成的?我怀疑这与视图是模态视图这一事实有关。有什么见解吗??
我真的不想访问较低级别的 c API。必须以这种方式解决它在本地化方面会一团糟,因为我不知道如何在这么多非罗马字母语言中对联系人列表和 tableView 索引进行排序(如果我设法保留的话,我可以搭便车使用基于可可的框架)。另外,我很确定苹果对加载/处理联系人列表的优化无论如何都会胜过我自己的。据我所知,Apple 可以直接访问 AB sqlite 数据库,而我将不可避免地被迫从另一个抽象级别访问它......(基于 c 的 API)
不介意使用 c API 推出我自己的地址簿视图(这是荒谬的过度杀伤力,因为只是更改一些颜色和背景的所有数据管理开销......但是哦)如果你们可以另外指出我转向多语言/字母识别排序选项(显然,在坚持使用 AddressBookUI 框架的同时修改颜色+背景会更好)。
任何见解都非常感谢!
太感谢了,
何塞