IOS开发之UI设计---TabBarController,NSUserDefault,代理的设计

UITabBarController : UIViewController

 

UITabBarController :管理UIViewController(以数组的方式管理-----并列关系)

UINavigationController :管理UIViewController(以栈的方式管理-----层级关系)

UITabBarController : 高度为49px,如果要加自定义的图片到Item,图片高度为30px

 

 

//UITabBarController : 管理UIViewController

    UITabBarController *tabarCtrl = [[UITabBarControlleralloc]init];

 

//UITabBarController添加控件

    ViewController *viewCtrl = [[ViewControlleralloc]init];

    viewCtrl.view.backgroundColor = [UIColor purpleColor];

    

//定制UITabBarController上的按钮

    //UITabBarItem 定制tabbar控件专用类

    viewCtrl.tabBarItem = [[[UITabBarItemalloc]initWithTabBarSystemItem:UITabBarSystemItemDownloadstag:1] autorelease];

//—— 初始化一个UITabBarItem 控件

- (id)initWithTabBarSystemItem:(UITabBarSystemItem)systemItem tag:(NSInteger)tag;

//——

NSArray *arr = [NSArray arrayWithObjects:viewCtrl, nil];

[viewCtrl release];

tabarCtrl.viewControllers = arr;

 

//UITabBarController作为window的根视图控制器

    self.window.rootViewController = tabarCtrl;

    [tabarCtrl release];

 

UINavigationController *navCtrl = [[UINavigationControlleralloc]initWithRootViewController:viewCtrl]; //viewCtrl添加导航栏,

导航控制器作为视图存放进数组arr,

[arr addObject:navCtrl];

tabarCtrl.viewControllers = arr;

 

//协议 : 一组未实现的接口

/*  代理对象:(A)

 *   谁实现接口,谁就是代理,就必须遵守该协议,在代理的.h文件中写加上<协议名>

 *   协议(接口)实现在代理的.m文件中

 *  被代理对象:(B)

 *   要声明一个成员变量 id<协议名> delegate;实现delegategetter/setter方法

 *   被代理对象中实现一个方法C,调用协议(接口),协议在被代理对象中不实现.

 *用法:

 *  B.delegate = A;

 *  

 *[B 调用C方法];

 */

//代理调用协议的固定写法

    if (delegate &&[delegate performSelector:@selector(协议)]) {

        [delegate performSelector:@selector(协议)];

    }

 

 

NSUserDefault : NSObject

 

NSUserDefault的用法:

 AppDelegate:

//创建一个对象

NSString *pswd = @"13579";

    //NSUserDefault中保存一个对象

    [[NSUserDefaultsstandardUserDefaults] setObject:pswd forKey:@"password"];

/* The value parameter can be only property list objects: NSData,  * NSString, NSNumber, NSDate, NSArray, or NSDictionary. 

* For NSArray and NSDictionary objects, their contents must be 

* property list objects.

*/

    //同步到本地磁盘

    [[NSUserDefaultsstandardUserDefaults] synchronize];

 

 RootViewCtroller:

//读取NSUserDefault中的对象

    //读取对象时的key必须与存对象时的key一致

    NSString *pswd = [[NSUserDefaultsstandardUserDefaults]objectForKey:@"password"];

 

 

posted @ 2013-07-01 09:29  站在巨人肩膀上看巨人  阅读(322)  评论(0编辑  收藏  举报