`

iPhone开发多视图技术总结之二:Tab Bar .

    博客分类:
  • ios
ios 
阅读更多
实现的功能:通过Tab Bar,实现多视图切换。

关键词:多视图 Tab Bar


1、创建一个Empty Application工程,命名为:MultiView-Tab,如下图

[img]

[/img]





2、选中工程中的Group MultiView-Tab,然后按住CMD(Windows键)+N,新建视图控制器FirstViewController,如下图
[img]

[/img]



3、依照上步操作,新建视图控制器SecondViewController




4、编辑FirstViewController.xib,在Bottom Bar显示出Tab Bar,然后添加一个Lable,如下图
[img]

[/img]

[img]

[/img]



5、依照上部操作,设置SecondViewController.xib





6、新建Group,名称为:Images,添加4张png图片
[img]

[/img]





7、万事俱备,开始写代码,首先修改AppDelegate,添加一个UITabBarController类的实例,作为根视图控制器用。

AppDelegate.h修改后如下:
[img]#import <UIKit/UIKit.h>
#import "FirstViewController.h"
#import "SecondViewController.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
//添加代码
@property(strong,nonatomic) UITabBarController *tabBarController;
@end[/img]

AppDelegate.m主要修改didFinishLaunchingWithOptions方法,修改后如下:
#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;
//添加代码
@synthesize tabBarController;
- (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.
    //添加代码
    
    //初始化firstViewController
    UIViewController *firstViewController = [[[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil] autorelease];
    //初始化secondViewController
    UIViewController *secondViewController = [[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil] autorelease];
    
    self.tabBarController = [[[UITabBarController alloc]init] autorelease];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController,secondViewController, nil];
    
    //设置tabBarController为根视图控制器
    self.window.rootViewController = tabBarController;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application
{
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end






8、修改FirstViewController.m,初始化时设置tabBarItem的title和显示的图片,仅修改方法initWithNibName,如下:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.title = @"First View";
        self.tabBarItem.image = [UIImage imageNamed:@"first"];
    }
    return self;
}





9、依照上步修改SecondViewController.m,如下:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.title = @"Second View";
        self.tabBarItem.image = [UIImage imageNamed:@"second"];
    }
    return self;
}




10、编译、运行,效果如下
[img]

[/img]






总结:1)本文通过手工编写代码模拟了通过Tab Bar实现多视图切换;

2)Xcode提供了Tabbed Application模板,如下

[img]

[/img]
基于该模板创建的工程就是Tab Bar实现的多视图应用程序,与本文实现的功能相同。


  • 大小: 165.6 KB
  • 大小: 181.2 KB
  • 大小: 82 KB
  • 大小: 9 KB
  • 大小: 11.2 KB
  • 大小: 74.6 KB
  • 大小: 165.7 KB
分享到:
评论

相关推荐

    iPhone开发【九】多视图技术总结之二:Tab Bar

    博文http://blog.csdn.net/m_changgong/article/details/8205170源代码

    IOS编程入门-精品教程

    第十二部分:Storyboard教程-创建Tab Bar控制器和Web视图 第十三部分:在表视图中添加搜索栏 第十四部分:如何在导航界面隐藏Tab Bar 第十五部分:Objective-C基础知识-介绍面向对象的编程 第十六部分:如何在你的...

    一步一步学习 iOS 6 编程(第四版)

    第十二部分:Storyboard 教程-创建 Tab Bar 控制器和 Web 视图 第十三部分:在表视图中添加搜索栉. 第十四部分:如何在导航界面隐藏 Tab Bar 第十五部分:Objective-C 基础知识-介绍面向对象的编程 第十六部分:如何在你...

    一步一步学习_iOS_6_编程(第四版)

    第十二部分:Storyboard教程-创建Tab Bar控制器和Web视图 第十三部分:在表视图中添加搜索栏 第十四部分:如何在导航界面隐藏Tab Bar 第十五部分:Objective-C基础知识-介绍面向对象的编程 第十六部分:如何在你的...

    一步步学IOS5编程完整版

    第十二部分:Storyboard教程-创建Tab Bar控制器和Web视图 第十三部分:在表视图中添加搜索栏 第十四部分:如何在导航界面隐藏Tab Bar 第十五部分:Objective-C基础知识-介绍面向对象的编程 第十六部分:如何在你的...

    一步一步学习IOS6

    第十二部分:Storyboard教程-创建Tab Bar控制器和Web视图 第十三部分:在表视图中添加搜索栏 第十四部分:如何在导航界面隐藏Tab Bar 第十五部分:Objective-C基础知识-介绍面向对象的编程 第十六部分:如何在你的...

    (0153)-iOS/iPhone/iPAD/iPod源代码-弹出视图(Popup View)-Info Bar

    显示的提示信息位置位于tab bar的上方,自动显示,并且自动隐藏。提示信息的显示是异步的,也就是不会导致程序停滞。在效果图中,“Action From View 1”便是显示的提示信息,可以自动隐藏。 注意:请在Mac下解压...

    苹果ios开发100个实例源码.zip

    苹果ios开发100个实例源码; 个人信息输入表(支持表单增删) 二维码扫描应用demo 二维码生成器 从GIF动画创建一个动态UIImages 对象 从上往下拉出现加载view,动态加载内容 从上往下拉动态加载 从上往下拉动态加载3 ...

    史上最全的ios开发源码

    文字视图(Text)之Bar Track ball Item 文字视图(Text)之Messages TableViewController 文字视图(Text)之TextView Placeholder 文字视图-HashTag Mention Controller 文字视图-Tweet Label 文字视图类--Digit ...

    android开发资料大全

    Android 小項目之---Iphone拖动图片特效 (附源码) 一个完整的新浪微博客户端android版OAuth认证示例 超爽的android抽屉效果 65个Android实例教程汇总 基本控件及基本动画效果dem 2011android面试题目及其答案大全...

    AKTabBarController(iPhone源代码)

     • 当进入下个视图时,可以自动隐藏tab bar; • 可以只显示图片,而不显示文字;并且当 tab bar 的高度太小时,可以自动缩放图片以及隐藏文字; • 只需要一张图片来表示 tab 被选择和非选择

    Filter View(iPhone源代码)

    可以自定义每个tab的颜色、文字、背景图片等等,并且可以滑动选择不同的tab,也可以滚动视图时隐藏tab bar。这份代码实现的是tab bar控件,但不是UITabBar的扩展,而是UIView的子类,从而比UITabBar更加轻便、灵活。...

    一步一步学习 iOS 5 编程(第二版)- 示例项目源代码下载-14部分

    前面的教程中(第十二部分:Storyboard教程-创建Tab Bar控制器和Web视图),我们开发了一个tab bar(选项卡栏)应用程序。在之前的教程中,我们将导航控制器嵌入在tab bar控制器内。因此,当用户轻拍任一菜单项时,...

    Pages Container(iPhone源代码)

    来源:Licence:MIT平台:iOS设备:iPhone / iPad作者:Arthur Evstifeev  很方便实现分页显示的滚动视图。只要在一个数组里面定义好每一页的视图标题,就会自动生成可以滑动选择或者点击选择的tab bar。即使每...

    Dark Themed Tab View(iPhone源代码)

    来源:Licence:BSD平台:iOS设备:iPhone / iPad作者:...实现特殊效果的tab bar,包括tab的颜色、形状、文字、图片等等,以及tab和tab直接切换的动作效果等等。 Code4App编译测试,适用环境:Xcode 4.3, iOS 5.0。

    PickerView Demo(iPhone源代码)

    来源:Licence:MIT平台:iOS设备:iPhone / iPad作者:AdamKevint  实现 UIPickerView 的三种用法。一种是不关联的PickerView,也就是每个Column都是...这次上传的是用Tab Bar Controller 合并的3个有关PickerV

    RKTabView(iPhone源代码)

    来源:github/RKTabViewLicence:MIT作者:RafaelKayumov  很方便自定义各种 Tab Bar 外观,也可以用作 Tool Bar。

Global site tag (gtag.js) - Google Analytics