iOS导航控制器和标签栏控制器的结合

<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">- (void)initTabBar
{
    //    初始化主页
    HomePageViewController *homePage = [[HomePageViewController alloc]init];
    UINavigationController *homePageNav = [[UINavigationController alloc]initWithRootViewController:homePage];

    //    判断是否存在用户存储的城市
    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
    if (![userDefault objectForKey:@"cityDic"]) {
        CitySelectionViewController *citySelection = [[CitySelectionViewController alloc]init];
        [homePageNav pushViewController:citySelection animated:YES];
    }
    // 设置主页-TabBar
    UITabBarItem *itemHomePage= [[UITabBarItem alloc] initWithTitle:@"首页" image:[UIImage imageWithImage:[UIImage imageNamed:@"1-1.png"] scaledToSize:CGSizeMake(25, 25)] tag:0];
    [itemHomePage setFinishedSelectedImage:[UIImage imageWithImage:[UIImage imageNamed:@"1-1.jpg"] scaledToSize:CGSizeMake(25, 25)] withFinishedUnselectedImage:[UIImage imageWithImage:[UIImage imageNamed:@"1-2.jpg"] scaledToSize:CGSizeMake(25, 25)]];
    homePageNav.tabBarItem=itemHomePage;
    [itemHomePage setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NAVBACKGROUNDCOLOR,UITextAttributeTextColor, nil] forState:UIControlStateSelected];

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO([NSString stringWithFormat:@"7.0"])) {
        [homePageNav.navigationBar setBarTintColor:NAVBACKGROUNDCOLOR];
    }else
    {
        [homePageNav.navigationBar setTintColor:NAVBACKGROUNDCOLOR];
    }
    homePageNav.navigationBar.translucent = NO;

//    初始化我的购物车
    ShoppingCartViewController *shoppingCart = [[ShoppingCartViewController alloc]init];
    UINavigationController *shoppingCartNav = [[UINavigationController alloc]initWithRootViewController:shoppingCart];

    // 设置购物车-TabBar
    UITabBarItem *itemShoppingCart= [[UITabBarItem alloc] initWithTitle:@"我的购物车" image:[UIImage imageWithImage:[UIImage imageNamed:@"1-1.png"] scaledToSize:CGSizeMake(25, 25)] tag:0];
    [itemShoppingCart setFinishedSelectedImage:[UIImage imageWithImage:[UIImage imageNamed:@"1-1.jpg"] scaledToSize:CGSizeMake(25, 25)] withFinishedUnselectedImage:[UIImage imageWithImage:[UIImage imageNamed:@"1-2.jpg"] scaledToSize:CGSizeMake(25, 25)]];
    shoppingCartNav.tabBarItem=itemShoppingCart;
    [itemShoppingCart setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NAVBACKGROUNDCOLOR,UITextAttributeTextColor, nil] forState:UIControlStateSelected];

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO([NSString stringWithFormat:@"7.0"])) {
        [shoppingCartNav.navigationBar setBarTintColor:NAVBACKGROUNDCOLOR];
    }else
    {
        [shoppingCartNav.navigationBar setTintColor:NAVBACKGROUNDCOLOR];
    }
    shoppingCartNav.navigationBar.translucent = NO;

    //    初始化我的汇众
    IndividualCenterViewController *individualCenter = [[IndividualCenterViewController alloc]init];
    UINavigationController *individualCenterNav = [[UINavigationController alloc]initWithRootViewController:individualCenter];

    // 设置汇众-TabBar
    UITabBarItem *itemindividualCenter= [[UITabBarItem alloc] initWithTitle:@"我的幸福家" image:[UIImage imageWithImage:[UIImage imageNamed:@"1-1.png"] scaledToSize:CGSizeMake(25, 25)] tag:0];
    [itemindividualCenter setFinishedSelectedImage:[UIImage imageWithImage:[UIImage imageNamed:@"1-1.jpg"] scaledToSize:CGSizeMake(25, 25)] withFinishedUnselectedImage:[UIImage imageWithImage:[UIImage imageNamed:@"1-2.jpg"] scaledToSize:CGSizeMake(25, 25)]];
    individualCenterNav.tabBarItem=itemindividualCenter;
    [itemindividualCenter setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NAVBACKGROUNDCOLOR,UITextAttributeTextColor, nil] forState:UIControlStateSelected];

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO([NSString stringWithFormat:@"7.0"])) {
        [individualCenterNav.navigationBar setBarTintColor:NAVBACKGROUNDCOLOR];
    }else
    {
        [individualCenterNav.navigationBar setTintColor:NAVBACKGROUNDCOLOR];
    }
    individualCenterNav.navigationBar.translucent = NO;

    self.tabBar = [[UITabBarController alloc] init];
    [[UITabBar appearance] setBackgroundImage:[UIImage setBackgroundImageByColor:COLOR(255, 255, 255, 1) withFrame:RectWithPara(0, 0, SCREEN_WIDTH, 44)]];  // 设置UITabBar背景图片
    [[UITabBar appearance] setSelectionIndicatorImage:
    [UIImage imageWithTint:COLOR(235, 235, 235, 1)]];
    self.tabBar.viewControllers = [NSArray arrayWithObjects:homePageNav,shoppingCartNav,individualCenterNav, nil];
}

<span style="font-family: Arial, Helvetica, sans-serif;">在程序启动时设置根控制器为 tabbar,如下</span>

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

{

self.window = [[UIWindow
alloc] initWithFrame:[[UIScreen
mainScreen] bounds]];

[self
initTabBar];

self.window.rootViewController =
self.tabBar;

self.window.backgroundColor = [UIColor
whiteColor];

[self.window
makeKeyAndVisible];

return
YES;

}

时间: 2024-12-06 20:28:38

iOS导航控制器和标签栏控制器的结合的相关文章

导航控制器和标签栏控制器

1. 导航控制器 1.1. 导航控制器的组成 1.2. 导航控制器的创建 1.3. 改变导航控制的关联视图 1.4. 实现导航 1.5. 添加标题 1.6. 设置导航栏颜色 1> 使用setBackgroudColor属性设置 2> 使用tintColor属性进行设置 1.7. 添加左右按钮 1> 静态添加按钮 2> 动态添加按钮 1.8. 设置返回按钮 2. 标签栏控制器 2.1. 标签栏控制器的创建 1> 静态创建标签栏视图控制器 2> 创建一个Tabbed App

导航栏控制器和标签栏控制器(UINavigationController和UITabBarController)混用

很多时候,在UI设计方面同时需要使用导航控制器和标签栏控制器,这时,需要掌握如何设计结合使用这两种不同控制器.比如手机QQ,程序有三个标签栏(分别为消息.联系人.动态),同时在选择某个联系人或者会话时,会进入聊天的子页面,因此这里同时使用到了标签栏控制器和导航控制器. 我目前所知道有以下方法可实现上述的结合使用效果. 根视图是标签栏控制器,然后每页标签栏又有一个根视图控制器为导航栏控制器的标签,如下代码所示 // 消息 MessageViewController* msg = [[Message

iOS开发学习之#标签栏控制器#(6)设置标签栏控制器

动态创建标签栏控制器就不说了,就是从视图库中托一些控件,这里要用到得是Tab Bar Controller,然后创建两个插座变量跟拖的控件进行关联.现在我们主要讲一下怎么对Tab Bar Controller进行设置: (1)设置条目标题 self.title = @"第一个视图"; [self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor

iOS结合导航控制器和标签栏控制器

<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">- (void)initTabBar { // 初始化主页 HomePageViewController *homePage = [[HomePageViewController alloc]init]; UINavigati

iOS开发UI篇—多控制器和导航控制器简单介绍

iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去管理其他多个控制器 比如,用一个控制器A去管理3个控制器B.C.D.控制器A被称为控制器B.C.D的“父控制器”:控制器B.C.D的被称为控制器A的“子控制器” 为了便于管理控制器,iOS提供了2个比较特殊的控

关于ios导航控制器的知识总结

关于ios导航控制器的知识总结 添加了导航控制器后: 1.每个页面都会有一个顶部导航栏navigationbar和底部工具栏toolbar,它们是导航控制器navC的属性.且导航栏默认是不隐藏的,而底部工具栏默认是隐藏的. 2.可以通过设置 self.navigationController.toolbarHidden = NO来显示底部工具栏,工具栏中的内容可以通过viewController的toolbarItems来设置,显示的顺序和设置的NSArray中存放的顺序一致,其中每一个数据都一

ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a

参考:StackOverflow ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a.在b跳转(push)到c中代码书写如下: UINavigationController *navController = [[self.navigationController retain] autorelease]; [navController popViewControllerAnimated:NO]; View

iOS:给标签栏控制器的UITabbarItem添加点击动效

一.介绍 现在很多app,附带很炫的点击效果,让用户享受到非常棒的体验,例如动画.渐变.音效等. 当然,市面上大多数app的标签栏点击还是挺中规中矩的,只是切换图片而已.然而,这个是可以优化的,附带点特效能极大为app增色. 例如音效和波动,淘宝和今日头条就是这么实现的,效果特别棒.这里实现一下UITabbarItem波动的动画. 二.代码 1.遍历标签栏控制器的UITabbarItem,给其每一个子视图按钮添加点击事件 for (UIControl *tabBarButton in [UITa

iOS狂暴之路---视图控制器(UIViewController)使用详解

一.前言 在之前的一片文章中已经介绍了 从iOS的第一个应用中能学习到哪些知识点 在那篇文章中主要介绍了一个iOS程序的启动过程和应用的几大对象,以及应用的生命周期,同时也介绍了应用中的控制器知识点,介绍了其生命周期方法,那么对于一个iOS应用一般都是会包含多个页面,而每个页面就是一个控制器,一个控制器一般都是关系到一个UIView的,但是我们在真正使用这些控制器的时候会发现,多个页面之间的跳转关系该如何控制.在之前的文章知道一个应用对应一个窗口对象UIWindow,每个窗口都有一个根控制器对象