昨天使用了ToolBar 使用了多视图,总是感觉不是那么的舒服.今天使用了Tabbar Controller 实现多视图,简洁方便.
下面就是来学习吧.
1.框架的建立.
近期的学习发现,框架建立之后,我们写代码就条理清晰了.特别是今天写的 学生成绩管理系统,有了大的框架,谢大妈嗖嗖的.
得了,废话不多说,框架,走起来!
s1.建立一个empty App.因为我们想使用 tabBar Controller 作为我们的根视图,所以就不需要系统自带的xib 视图了.
建立之后,我们发现在这个程序中只有 appdategate的 声明和实现文件.当然,这就是我们需要的啦.
s2.在代理中建立一个 TabBarController 的 rootview控制器.
@property (strong, nonatomic) UIWindow *window;
@property (strong,nonatomic)IBOutlet UITabBarController *rootController;
有朋友会问,为什么要建立这个rootController.这就是 我们待会要建立的 TabBarController 和代理文件的连接桥梁文件,没有他,delegate 和 TabBarController 就可以进行交互了.
s3.app 运行时 首先要加载代理文件,可是我们想要呈现的TabBarController 的视图在哪里定义呢 ? 代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]];
// Override point for customization after application launch.
[[NSBundle mainBundle]loadNibNamed:@"TabBarController"owner:selfoptions:nil];
[self.windowaddSubview:rootController.view];
self.window.backgroundColor = [UIColorwhiteColor];
[self.windowmakeKeyAndVisible];
return YES;
}
你会问, 中间的红字 TabBarController 哪里来的? 好吧,我错了,这个xib文件我还没建立呢?别着急,请看第四步.
s4.我们已经为我们的根视图 RootController 做好准备了,建立一个 名字为TabbarController 的view 视图吧.xib格式你懂的.
我估计你又回来看这一步了,为什么我建立的视图不是你说的TabBarController那样子?
好吧,在建立视图的时候,记得建立一个empty 的视图.建立之后你就会发现"我的 手机屏幕在哪里?".好了,下一步,重中之重: 找到 Object 库 中TabbarController 这个show.然后拖进空白处.是不是就出来了呢?
而且,里面还有两个 TabbarItem呢. 该好名称、图片什么的我就不说了.
! 说实话,我也为 为什么我这个xib文件里的 item 竟然重叠在一起而发愁.后来我明白了,xcode5 的这个 TabbarController 改变了方式.它不再在我们没运行app的时候 对item进行位置处理了.当你运行app的时候,就会发现---他们是依照你左边dock上得顺序在屏幕上排序的.试试看,有木有??
s5:我想在这个TabbarController 的第一个item上面 放置一个 时间选择器.喂,不是在TabbarController里面放置的!我们需要重新建立 带 xib文件的视图控制器哦.
我建立的名称叫
BIDDataPickerViewController.h,m,xib.
s5.好吧,该他们交互的时候了:
在TabbarController.xib中修改两个地方:
我们选中 TabbarController.xib 所要使用的 DataPickerViewController.然后修改 Class:DataPickerViewController 和
xibName:DataPickerViewController.具体位置你找找看吧.
s6.基本的操作都写完了,你需要的这是在 BIDDataPickerViewCOntroller中处理了.
至于如何处理 DataPicker,我们在下一篇中陈述.