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-10-23 18:00:00

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导航控制器和标签栏控制器的结合

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

IOS UINavigationController 导航控制器

/** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 2.zhan (zhan 中所有的子控制器) self.navigationController.viewControllers; 3.将控制器压入zhan 中 [self.navigationController pushView

iOS开发——导航控制器返回按钮,返回到指定界面

大家都知道导航控制器中的返回按钮,会返回到上一个页面,但有时项目中有特殊要求,需要返回到指定的页面,我是这么实现的. 1. 首先是监听这个返回按钮的方法,我是通过自定义返回按钮监听的. //    自定义返回按钮 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"back-1x"] style:(UIBarButtonItemStyleD

IOS之导航控制器

UINavigationController是用于构建分层应用程序的主要工具,主要采用栈形式来实现视图.任何类型的视图控制器都可放入栈中.在设计导航控制器时需要指定根视图即用户看到的第一个视图.根视图控制器是被导航控制器推入到栈中的第一个视图控制器.当用户查看下一个试图时,栈中将加入一个新的视图控制器,它所控制的视图将展示给用户.我们可以通过导航按钮来操作分层的应用程序,用它来控制视图的推入或推出. 1.把子控制器添加到导航控制器中常用的方法 //创建视图控制器 JRViewController

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

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

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

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

IOS开发之视图和视图控制器

视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西.在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多.在UIKit框架中都有一个UIWindow来容纳我们的View.应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类.UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示.窗口是用来显示视图的,下面我们将会结合着实例来具体的