首页 > 【Three20研究院之应用开发】 > Three20研究院之快速将Three20框架从IOS工程中移除(十)
2012
10-30

Three20研究院之快速将Three20框架从IOS工程中移除(十)

       前段时间心情很郁闷,所以很久都没有更新博客了。今天突然想写点东西,就写点把。IOS6的发布 facebook决定放弃使用Three2o这套框架,Three20的官网已经很久没有更新了,目前只有GitHub上在维护,所以决定将现在工程中的Three2o框架移除。本篇文章MOMO就写写我在移除Three20框架的一些经验以及教训。

一.界面切换

在AppDelegate中打开程序的入口窗口,用过Three20的朋友看到下面的方式应该不陌生吧。

 我们首先把它先改了,如果你的程序不需要导航栏可以不加UINavigationController。

 此时,入口视图方法我们已经修改完毕,接着我们修改二级菜单,子菜单之间的切换。

处理子菜单时Three20依然在AppDelegate中就声明了所有ViewController,并且依次给他们起了一个别名。

 这三种是最常用的类型,其实核心也无非就是两种,这里我直接写IOS源生的实现方式,记得把TTViewController换成UIViewController:

1.向右推出一个新ViewController

 默认的话进入新ViewController的时候左上角会有一个返回的按钮,点击该按钮后会返回到之前的界面。当然如果你是自定义返回按钮的话,需要写代码来手动返回。

在新推的界面中执行下面代码即可直接返回。

 2.向上覆盖一个新ViewController

同样,如果不需要导航栏的话去掉UINavigationController即可。

 正如上面所说这是一个向上覆盖的ViewController ,不需要时就需关闭它。

 

二、自定义TabBar

Three20研究院之完全自定义TabBar(八) 这是320实现自定义的方式,有兴趣的朋友去看看,这里我只说如何把Three20自定义的TabBar 用源生的方式来写。

.h文件

 .m文件

 

Three20研究院之快速将Three20框架从IOS工程中移除(十) - 雨松MOMO程序研究院 - 1

 

         接着再说说Tabbar界面切换的特殊情况,正常情况切换界面是在当前ViewController中完成的,可是UITabViewController都是集成了好几个子ViewController,如果切换界面的触发事件在这些子ViewController中的话,就需要在子ViewController中通知父UITabViewController然后在去切换。 不然的话TabBar的按钮是不会消失的。

、自定义UITableViewCell

Three20研究院之自定义TableView列表详解(二)这是之前我写过的一篇文章,但是在Three20中我是按这种方式实现自定义UITableViewCell,这里我只写如何在IOS源生下实现。

在UITableViewController的全局定义一个自定义Cell的数据源,以数组的形式保存着每一个cell的数据。

NSMutableArray *_dataSourses; 

下面这段代码我上面提到的那篇文章中copy的。

 

 

 

TableItem.h就是每一个Cell需要用到的对象,这里我们先把

@interface TableItem:TTTableLinkedItem修改成

@interface TableItem:NSObject

 

接着是Cell

 

 

TableItemCell.h就是每一个Cell对象,自定义的布局就是在这里完成。

@interface TableItemCell:TTTableLinkedItemCell

修改成

@interface TableItemCell:UITableViewCell

此时,自定义Cell的布局我们有了,每一个Cell布局需要的对象我们也有了,下面我们要让UITbaleViewController来将这些Cell绘制出来。
UITbaleViewController中加入代码

 

 

 

注:TimeLineTableItem、TimeLineTableItemCell 是我项目中用到的对象,大家不必拘泥于名子如何来起,原理白即可。

 

另外cell还具有一个刷新的功能,当数据源_dataSourses发生改变后手动调用如下方法即可刷新Cell。程序会重新执行上述三个方法来刷新Cell。

 

一般在Three20工程中将这三部做完剩下的就是一些琐碎的活,在将工程中所有TT开头的对象引用全部去掉,谁都不愿理干体力活,可是脏活累活还是得干,呵呵! 仔细一下很快就把Three20框架移除了。

如下图所示,这里的thrr20路径一定要删除,不然还是会有诡异的错误,呵呵、

Three20研究院之快速将Three20框架从IOS工程中移除(十) - 雨松MOMO程序研究院 - 2

 

最后在fromwork中将所有three20的framwork全部删除,运行一下祝你成功喔,嘿嘿!

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。