IOS学习五:UITabBarController初步

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 17:08 点击:

UiTabBarController这个控制器绝对是项目架构时做常用的一个控件。
我们大致看下控件的效果,我们就知道为什么说他常见了。

这就是最简单的一个雏形,想必现在基本70%的应用界面结构都会是这样的。
在Android中我们以ActivityGroup或是现在的fragment来实现,一个容器中包含多个子控制器。

下面我们还是以建立xib文件的形式来实现一个这样的整体布局的例子。
当然在 xcode4.3.2中我们会发现其实直接有这么一个模板了

但是直接使用模板后会发现是直接在代码里实现了子布局得添加,由于我们不熟练,对于item,tabbar什么的图片文字自定义,一下子找不到代码里的api,
可能说用xib来实现可以看得比较明了。
据说以前直接有base_window模板,不过没关系,模板只是为了给我快速建立一个应用而已,我们这边手动的从最基础得开始
1.首先建立一个Empty Application
2.建立完后我们自定顶一个MainWindow.xib(当然,这个名字可以随意取,但是按照规范以及一种默认留下来的习惯),作为应用启动时加载的首个nib文件,
在新建xib文件你可以选择window也可以是empt什么,其实都差不多,我们这边选window模板得xib文件
3.然后我们其实是要把XXXAppdelegate和这个xib文件连接起来。因此把.h文件定义成这样:
[cpp] 
#import <UIKit/UIKit.h> 
 
@interface NonoAppDelegate : UIResponder <UIApplicationDelegate> 

    UIWindow *window; 
    UITabBarController *tabTarController; 

 
@property (retain, nonatomic) IBOutlet UIWindow *window;//该控件模板生成是不带IBOutlet的,但是我们为了xib文件布局得统一性,将其也作为一个输出口和在Mainxib中连接起来可以 
@property (retain, nonatomic) IBOutlet UITabBarController *tabTarController; 
@end 

4.然后我们来大致设计我们的xib文件,打开MainWindow.xib文件,我们大致看到视图元素,一个是文件拥有者Filesowner,然后是reponder(这个一直没
怎么用到,具体干吗使的还不是明确),然后最主要得是Object这个标签下得元素,此时就一个window。
首先我们要将文件拥有者这个类改成UIApplication,点击File'sOwner标签后在右侧的属性栏选择Indentity  inspector,看到此时customclass是NSobject,
我们改成UIApplication,改完后会发现File'sOwner得Outlets用了一个delegate的输出口东东,看过上一篇关于outlets和reference outlet我们就知道,
这个东东等会可以指向一个实例对象什么的。

5.好了,那么我们在object下的添加一个delegate的对象,操作很简单,在右侧控件组中

拖一个这样得对象到xib下得Object标签下,
然后我们来自定这个对象,根据上面所知,我们大致可以知道我们需要一个类似于delegate类得对象,对了
我们的AppDelegate不就刚好是这么一个东西么。于是很自然的,选中这个object然后在右侧属性栏将custom class设置成NonoAppDelagate。
然后点击File's Owner将其输出口delegate和我们刚放上去的NonoAppdelagate链接起来。

6.设置完以上后,我们可以点击Object下得XXXAppDelegate,然后看右边属性栏的 Outlets,对了,我们刚在该文件得.h中申明过两个输出口,此刻我们是
要创建两个这样的对象然后将其连接起来。window这时已经有了,还少个UITabBarController。那么我们从右边拖个过来咯
然后输出口和对象链接起来。
此刻,最基本的tabbarcontroller布局框架就ok了,此刻的xib文件如下图

然后我们打开AppDelegate.m进行实现和修改
[cpp] 
#import "NonoAppDelegate.h" 
 
@implementation NonoAppDelegate 
 
@synthesize window ; 
@synthesize tabTarController ; 
 
- (void)dealloc 

    [self.window release]; 
    [self.tabTarController release]; 
    [super dealloc]; 

 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

//    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 
    self.window.backgroundColor = [UIColor whiteColor]; 
    self.window.rootView

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • UITableView一些方法
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • iphone(object-c)内存管理(1)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1