storyboard是一个很强大的编写代码的辅助工具,可以帮助布局多个视图之间的联系,既直观又能减少代码量;但是,作为一个程序员,在不使用storyboard的情况下,纯代码编写是必须的技能。
下面就用纯代码实现纯代码实现UITabBarController的视图切换功能,咱就实现三个视图之间的转换吧,代码不多,容易看的明白。
步骤:
1、删除storyboard故事板和UIViewController
2、创建三个控制器类,均继承自UIViewController,分别为FirstViewController、SecondViewController、ThreeViewController
3、为了便于区分跳转的视图,分别在上面的三个控制器类中设置它们各自视图的颜色。
4、在AppDelegate应用程序代理类中进行这三个控制器的创建、UITabBarController的创建、window的创建。最后进行代码的整合即可。
文件截图如下:
演示结果如下:
代码如下:
在FirstViewController类中只设置视图颜色:
- (void)viewDidLoad {
[super viewDidLoad];
// 设置视图颜色
self.view.backgroundColor = [UIColor redColor];
}
在SecondViewController类中只设置视图颜色
- (void)viewDidLoad {
[super viewDidLoad];
// 设置视图颜色
self.view.backgroundColor = [UIColor greenColor];
}
在ThreeViewController类中只设置视图颜色
- (void)viewDidLoad {
[super viewDidLoad];
// 设置视图颜色
self.view.backgroundColor = [UIColor purpleColor];
}
在AppDelegate应用程序代理类中,代码才是重点,如下:
#import "AppDelegate.h"
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThreeViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 创建window并设置大小
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]]; //创建UITabBarController
UITabBarController *tabBarController = [[UITabBarController alloc]init]; //创建三个控制器,并且加入tabBarController中
FirstViewController *firstVC = [[FirstViewController alloc]init];
//设置标签栏标题
firstVC.tabBarItem.title = @"first";
//设置系统自带的图标
firstVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:];
//设置badgeValue
firstVC.tabBarItem.badgeValue = @""; SecondViewController *secondVC = [[SecondViewController alloc]init];
secondVC.tabBarItem.title = @"second";
//设置系统自带的图标
secondVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:];
//设置badgeValue
secondVC.tabBarItem.badgeValue = @""; ThreeViewController *threeVc = [[ThreeViewController alloc]init];
threeVc.tabBarItem.title = @"three";
//设置系统自带的图标
threeVc.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:]; //[tabBarController addChildViewController:firstVC];
//[tabBarController addChildViewController:secondVC];
//[tabBarController addChildViewController:threeVC];
tabBarController.viewControllers = @[firstVC,secondVC,threeVc]; //将tabBarcontroller设置为根控制器
self.window.rootViewController = tabBarController; //window接受用户响应并显示
[self.window makeKeyAndVisible]; return YES;
}