博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:删除storyBoard,纯代码实现UITabBarController的视图切换功能
阅读量:5203 次
发布时间:2019-06-13

本文共 2930 字,大约阅读时间需要 9 分钟。

  storyboard是一个很强大的编写代码的辅助工具,可以帮助布局多个视图之间的联系,既直观又能减少代码量;但是,作为一个程序员,在不使用storyboard的情况下,纯代码编写是必须的技能。

下面就用纯代码实现纯代码实现UITabBarController的视图切换功能,咱就实现三个视图之间的转换吧,代码不多,容易看的明白。

步骤:

1、删除storyboard故事板和UIViewController

2、创建三个控制器类,均继承自UIViewController,分别为FirstViewController、SecondViewController、ThreeViewController

3、为了便于区分跳转的视图,分别在上面的三个控制器类中设置它们各自视图的颜色。

4、在AppDelegate应用程序代理类中进行这三个控制器的创建、UITabBarController的创建、window的创建。最后进行代码的整合即可。

 

文件截图如下:

演示结果如下:

       

 

代码如下:

在FirstViewController类中只设置视图颜色:

1 - (void)viewDidLoad {2     [super viewDidLoad];3     // 设置视图颜色4     self.view.backgroundColor = [UIColor redColor];5 }

在SecondViewController类中只设置视图颜色

1 - (void)viewDidLoad {2     [super viewDidLoad];3      // 设置视图颜色4     self.view.backgroundColor = [UIColor greenColor];5 }

在ThreeViewController类中只设置视图颜色

1 - (void)viewDidLoad {2     [super viewDidLoad];3      // 设置视图颜色4     self.view.backgroundColor = [UIColor purpleColor];5 }

在AppDelegate应用程序代理类中,代码才是重点,如下:

1 #import "AppDelegate.h" 2 #import "FirstViewController.h" 3 #import "SecondViewController.h" 4 #import "ThreeViewController.h" 5  6 @interface AppDelegate () 7  8 @end 9 10 @implementation AppDelegate11 12 13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {14     // 创建window并设置大小15     self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];16     17     //创建UITabBarController18     UITabBarController *tabBarController = [[UITabBarController alloc]init];19     20     //创建三个控制器,并且加入tabBarController中21     FirstViewController *firstVC = [[FirstViewController alloc]init];22     //设置标签栏标题23     firstVC.tabBarItem.title = @"first";24     //设置系统自带的图标25     firstVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];26     //设置badgeValue27     firstVC.tabBarItem.badgeValue = @"10";28     29     SecondViewController *secondVC = [[SecondViewController alloc]init];30     secondVC.tabBarItem.title = @"second";31     //设置系统自带的图标32     secondVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];33     //设置badgeValue34     secondVC.tabBarItem.badgeValue = @"5";35     36     37     ThreeViewController *threeVc = [[ThreeViewController alloc]init];38     threeVc.tabBarItem.title = @"three";39     //设置系统自带的图标40     threeVc.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:2];41     42     //[tabBarController addChildViewController:firstVC];43     //[tabBarController addChildViewController:secondVC];44     //[tabBarController addChildViewController:threeVC];45     tabBarController.viewControllers = @[firstVC,secondVC,threeVc];46     47     //将tabBarcontroller设置为根控制器48     self.window.rootViewController = tabBarController;49     50     //window接受用户响应并显示51     [self.window makeKeyAndVisible];52     53     return YES;54 }

 

转载于:https://www.cnblogs.com/XYQ-208910/p/4811401.html

你可能感兴趣的文章
ios iphone ipad上iframe的宽度会扩大的解决办法
查看>>
怎样解决ASP图片上传漏洞的方法
查看>>
Python内置函数(36)——iter
查看>>
事件双向绑定原理
查看>>
HTML标签_1
查看>>
117. Populating Next Right Pointers in Each Node II
查看>>
[Angular] @ViewChildren and QueryLists (ngAfterViewInit)
查看>>
jsp组成元素
查看>>
排序算法(转)
查看>>
windows自带的可生成各种数据库连接字符串工具打开方法
查看>>
python def 定义函数
查看>>
音频相关知识
查看>>
Linux查看系统开机时间(转)
查看>>
form表单中method的get和post区别
查看>>
【做题】arc068_f-Solitaire——糊结论
查看>>
Poj 1094 拓扑排序 水题
查看>>
Oracle SQL查询,日期过滤条件要注意的一点
查看>>
链表快排
查看>>
链表操作合集
查看>>
C# 编写通用的JSON数据进行序列化和反序列化
查看>>