tabbarcontroller

tabbarcontroller 以及保存退出程序前对tabbar所作的操作,以及移动tabbar的顺序

这个直接在appdelegate中进行操作

//
//  AppDelegate.m
//  UI1.7
//
//  Created by qianfeng on 13-7-9.
//  Copyright (c) 2013年 __MyCompanyName__. All rights reserved.
//

#import "AppDelegate.h"
#import "RootViewController.h"
#import "ViewController1.h"
#import "ViewController2.h"
#import "ViewController3.h"
#import "ViewController4.h"
#import "ViewController5.h"
@implementation AppDelegate

@synthesize window = _window;

- (void)dealloc
{
    [_window 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.
    
    RootViewController *rootVC = [[RootViewController alloc]init];
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:rootVC];
   [nav.navigationBar setTintColor:[UIColor colorWithRed:0.6 green:0.4 blue:0.91 alpha:1.0]];
    
    ViewController1 *view1 = [[ViewController1 alloc]init];
    
    
    ViewController2 *view2 = [[ViewController2 alloc]init];
    
    ViewController3 *view3 = [[[ViewController3 alloc]init]autorelease];
    
    ViewController4 *view4 = [[[ViewController4 alloc]init]autorelease];
    
    ViewController5 *view5 = [[[ViewController5 alloc]init]autorelease];
 
//    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:rootVC];
    
    UITabBarController *tabBarCtr = [[UITabBarController alloc]init];
    tabBarCtr.viewControllers = [NSArray arrayWithObjects:nav,view1,view2,view3,view4,view5, nil];
    
    tabBarCtr.delegate = self;
   
    //取顺序
    NSUserDefaults  *defaults = [NSUserDefaults standardUserDefaults];
    
    NSArray *lastSortArray = [NSArray arrayWithArray:[defaults objectForKey:@"Value"]];
    NSLog(@"%@",lastSortArray);
    //存储顺序变幻后的viewcontrollers   
     NSMutableArray *arr = [[NSMutableArray alloc]init];
     if (lastSortArray != NULL) {
         
         NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:nav,@"0",view1,@"1",view2,@"2",view3,@"3",view4,@"4",view5,@"5",nil];
         //遍历
         for (NSString *t in lastSortArray) {
             //取每一个视图控制器
            UIViewController *vc = [dic objectForKey:t];
             [arr addObject:vc];
         }
         //更新tabbar视图控制器数组
         tabBarCtr.viewControllers = arr;    
     }
    
    //读取上次用户浏览的页面
    
    int n = [defaults integerForKey:@"lastNumber"];
    //更新以下
    tabBarCtr.selectedIndex = n;
  
    self.window.rootViewController = tabBarCtr;
    [view1 release];
    [view2 release];

    [rootVC release];
    [tabBarCtr release];
   
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
//     
//    if (viewController.tabBarItem.tag == 1) {
//        return NO;
//    }else{
//        return YES;
//    }
    return YES;
}

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
   // NSLog(@"%d",tabBarController.selectedIndex);
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    
    //保存最后一页的编码
    [defaults setInteger:tabBarController.selectedIndex forKey:@"lastNumber"];
    
    //写入
    [defaults synchronize];
    
}

-(void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed{
   
    //NSLog(@"%@",tabBarController.viewControllers);
    //遍历viewcontrollers
    NSMutableArray *ar = [[NSMutableArray alloc]init];
    for (UIViewController *v in viewControllers) {
        //获取tag值
        int tag = v.tabBarItem.tag;
        //将tag转化微字符串
        NSString  *tagStr = [NSString stringWithFormat:@"%d",tag];
        //添加到数组
        [ar addObject:tagStr];
    }
   
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:ar forKey:@"Value"];
    [defaults synchronize];
  //  NSLog(@"=%@",ar);
    [ar release];
}

 
 

@end

 

posted on 2013-07-23 19:35  心火之源 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/llmcool/p/3209279.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值