IOS:IOS UITabBarController storybroad 点滴笔记
来源:互联网 发布:packetsender mac 编辑:程序博客网 时间:2024/05/21 17:37
文章来自:http://blog.csdn.net/intbird
学习笔记记录一下,直接将TabBarController作为根布局,基于storyborad的UITabBarController等
我之前以为直接使用tabBar控件,然后在tabBar的点击事件上做一些东西就可以切换ViewController了,我现在还没找到这样写的例子,回头在看看;
直接使用TabBarController是比较简单的,直接关联好子ViewController即可,见4;
没有理头的开始;
1.新建一个项目,如果有main.storyborad,删掉,在项目上点击右键,在 main interface上去掉勾选,这样自己写主的加载界面,当然可以自己指定一个界面,当然默认的就是 main.
*2, 如是,在AppDelegate.h中声明一个 tabBarViewController变量,稍后在AppDelegate.m中初始化;然后AppDelegate.m在添加如下代码,初始化一个UITabbarViewController作为根布局界面;
AppDelegate.h ,多添加了个协议和tabBar变量; *
#import <UIKit/UIKit.h>#import <CoreData/CoreData.h>@interface AppDelegate : UIResponder <UIApplicationDelegate,UITabBarControllerDelegate>@property (strong, nonatomic) UIWindow *window;@property (strong, nonatomic) UITabBarController *tabBarViewController;
AppDelegate.m 和显示一个界面大同小异,只是界面换为tabBarViewController而不是ViewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]]; FavViewController* favView = [[FavViewController alloc] initWithNibName:nil bundle:NULL]; favView.title = @"Favrite"; ContViewController* contView = [[ContViewController alloc] initWithNibName:NULL bundle:NULL]; contView.title = @"Contact"; RecentViewController * recentView = [[RecentViewController alloc] initWithNibName:NULL bundle:NULL]; recentView.title = @"Recent"; self.tabBarViewController = [[UITabBarController alloc]init]; self.tabBarViewController.delegate = self; self.tabBarViewController.viewControllers = [NSArray arrayWithObjects:favView, contView,recentView, nil]; self.window.rootViewController = self.tabBarViewController; [self.window makeKeyAndVisible]; return YES;}
FavViewController.h FavViewController.m的界面FavViewController.xib文件的创建;在上一篇ios的日志里也写过,这里重新记录一下
01,可以选择新建一个 Source->cocoa touch Class 勾选上创建xib文件;
02,如果是上面一步没有勾选,或者单独创建了三个类,那么对它们进行关联如下操作:在xib的 fileOwer上选择对应的ViewController,(如果是storybord,没有fielOwer选项,是可以点选关联的);
如图,关联class和拖动fileOwer到View,关联好;
3 那么运行是这个样子的
那为什么下面会显示样子不一样呢,应该没有img的呀,我之前拖动一个TabViewController到storybord上看到有个系统的style可以选,搜了一下看到在 子ViewController上,只要添加如下代码即可,即让子ViewController具有系统的tabbarItem的样子;
FavViewController.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { UITabBarItem *item = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemMostRecent tag:1]; self.tabBarItem = item; self.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d",9]; } return self;}
4,直接使用storybord推拽一个tabBarController,在界面上直接关联四个ViewController很简单;
01,单独新建一个项目,初始时只有main.storybord;在main.storybord的 viewController上,选择xcode工具栏的Editor->embed in->tabBarViewController,这样就把根UIViewController变成了UITabBarController;
02,在main.storybord中添加三个普通的UIViewController,进行如图所做操作;
03 运行后是这个样子的
5,UITabBarController点击事件,这个要研究一下,看这个委托里不少方法
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"切换tabBar" message:[NSString stringWithFormat:@"%lu",[tabBar.items indexOfObject:item]] delegate:self cancelButtonTitle:@"YES" otherButtonTitles:nil, nil]; [alert show];}
demo地址:http://download.csdn.net/detail/intbird/8720991
- IOS:IOS UITabBarController storybroad 点滴笔记
- iOS学习笔记-049.UITabBarController
- ios UITabBarController
- IOS-UITabBarController
- iOS UITabBarController
- iOS UITabBarController
- iOS UITabBarController
- IOS-UITabBarController
- ios-开发点滴 在ViewController里面建立UITabBarController
- IOS Storybroad和纯代码界面互联
- IOS学习笔记12—UITabBarController
- ios学习笔记(5)UITabBarController用法
- IOS学习笔记(5)UINavigationController UITabBarController
- iOS学习笔记10-UITabBarController的定制
- IOS学习笔记(5)UINavigationController UITabBarController
- IOS开发学习笔记——UITabBarController
- iOS 笔记二:Multiple MVCs 、UINavigationController 、UITabBarController
- iOS应用之UITabBarController
- 如何获取通知栏上的所有通知
- nginx虚拟主机配置
- POJ 2576 Tug of War
- python yield send
- 欢迎使用CSDN-markdown编辑器
- IOS:IOS UITabBarController storybroad 点滴笔记
- Ant classpath 指定类路径 编译程序引用第三方jar包
- eclipse xml 中提示
- Android Studio1.5 配置Android annotations
- 互联网带来的不安
- 动态规划:数塔问题
- SpringMVC-01 HelloWorld的基本流程
- android调优总结
- 第十一周 项目三:点类派生直线类