在蘑菇街做了半年多的IOS开发,当时要做到整个客户端的首页和底部工具条可配置,通过后端返回数据来确定点击后跳转到app内部哪个UIViewController。后来做扇贝网的iPhone客户端也这样做了。这样做能灵活的改变客户端的结构,也可以很好的接入web页面。
启动客户端时,调用相关接口,后端服务器将首页以及tabbar的每个按钮去哪个页面用json传过来。例如: {src= "http://s5.mogujie.cn/pic/120206/1ufz_kqywotdykrbf6x2ugfjeg5sckzsew_60x60.png?res=1";type = pop;uname = "热门";}。src是每个tabBarItem的背景图,type是这个tabBarItem点击后将要去哪个页面(这个名字的规则我们在app里面定好),uname是每个tabBarItem的标题。这样底部tabbar的跳转控制就完成了,而且每个tabbar的图片,标题都可以配置了。(具体怎么自己重写tabbar,网上例子很多)。
然后是怎么根据不同的type让客户端跳转了,用switch来做匹配,让不同的type产生不同的UIViewController。
然后为了方便使web页面跳转到app内部的页面,可以利用web页面的超链接来做,例如点击一个按钮的action,将链接改成“shanbei://search?uname="衣服"”,将url进行拆分(网上可以找到拆分代码),如果是http的链接就直接web内部跳转,如果是shanbei的链接,例如上面写的,search表示是搜索页面的跳转,uname表示搜索的关键词,然后调用相关接口,在成功方法里生成需要的UIViewController,然后push过去。对于search之类的不同的链接,用switch进行匹配后再做相关的逻辑处理