Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS didFinishLaunchingWithOptions方法里获取storyBoard的rootViewController

iOS didFinishLaunchingWithOptions方法里获取storyBoard的rootViewController

作者头像
星宇大前端
发布于 2019-01-15 03:00:06
发布于 2019-01-15 03:00:06
1.4K0
举报
文章被收录于专栏:大宇笔记大宇笔记

今天遇到个问题,想在didFinishLaunchingWithOptions方法里获取storyBoard的rootViewController。然后监听TabbarViewControllerde 点击事件(我的项目是storyBoard --> TabbarViewController形式)

问题一: didFinishLaunchingWithOptions 和 storyBoard 创建的方法,是怎么一个顺序呢。

程序启动过程如下:

  1. mian文件主函数创建UIApplication
  2. UIApplication 对象扫描 Info.plist 文件,将其中 Mainstoryboard file base name 所指定的 Storyboard 文件进行装载
  3. UIApplication 获取窗口并关联
  4. Storyboard 初始化 ,并指定root view controller
  5. 最后执行didFinishLaunchingWithOptions

由此发现didFinishLaunchingWithOptions之前已经Storyboard已经准备好了,UIApplication的rootViewController也准备好了。

跟踪一下找到了rootViewController ,获取如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

UITabBarController  *  tabBar  =  (UITabBarController *)application.delegate.window.rootViewController;

    tabBar.delegate  = self;

return YES;

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年12月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从0开发一款IOS APP(第一天)
实例化的时候使用TestView:TestView *view2 = [[TestView alloc] init];
zx钟
2019/07/19
1.3K0
iOS 新创建项目中的SceneDelegate适配
Xcode 11之后新建工程,默认为有SceneDelegate,但是SceneDelegate是从iOS 13之后才有的,如果最低兼容版本到iOS 13以下,需要怎么做呢?
莫空9081
2021/04/21
3.6K0
iOS四大对象之AppDelegate及UIApplicationMain函数/程序启动过程1. AppDelegate应用程序代理2. UIApplicationMain函数/程序启动过程
1. AppDelegate应用程序代理 手机上的App有一个致命的缺点:很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止。 还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件。作用:当被打断的时候,通知代理进入到后台。 默认创建出来,有七个方法,解读如下: // 程序第一次加载完毕,就会调用此方法 - (BOOL)application:(UIAppl
stanbai
2018/06/28
1.3K0
「GPUImage」IOS初学者容易掉入的坑
今天想弄个GPUImage的例子运行下看看效果,结果没成想坑进了一系列坑中,花了大半天时间才从坑里爬出来。
音视频_李超
2020/04/02
1.2K1
「GPUImage」IOS初学者容易掉入的坑
iOS13 Scene Delegate
iOS13以后,SceneDelegate将负责AppDelegate的某些功能。 window(窗口)的概念被window(场景)的概念所代替, 一个scene现在可以作为您应用程序的用户界面和内容的载体。iOS13以前一个应用程序可以有不止一个window,同样现在一个应用程序也可以有不止一个scene。
conanma
2021/11/04
6.1K0
iOS TabBar 轮子
今天在GitHub上找了一个TabBar的轮子,Star 6.5k还不错,日常开发已经够用了,设置图片,选中图片,文本颜色,选中文本颜色,数字角标,选中动画,中间凸起按钮都有,日常开发已经够用了。具体可以去GitHub上看文档。 CYLTabBarController 自己写的Demo
赵哥窟
2021/12/16
1.1K0
iOS TabBar 轮子
iOS 启动页后广告Demo
重点!       对于启动页后的广告,相信大家也都看到过很多很多的,比如我自己常看到的有 QQ音乐,爱奇艺了。你点击了APP,它会启动就会随之启动。。其实这些APP的启动页是没有消失的,你去认真的
Mr.RisingSun
2018/01/09
2K0
iOS 启动页后广告Demo
Unity项目嵌入现有iOS项目的方法
因为现有项目有个功能需要调用Unity页面,所以就叫同事用Unity打一个包给我嵌入到现有iOS工程,就一个导入过程就非常曲折。(泪奔~~o(>_<)o ~~) 以下所有的文件结构和TARGETS配置
傅_hc
2018/07/04
3.1K0
iOS开发系列——纯代码实现iOS开发
storyboard进行界面设计固然不错,特别是对于初学者经常会使用设计器进行界面设计,但是实际开发过程中我们很多情况下会直接使用代码进行界面布局,特别是对于复杂的界面布局更是如此。下面我们就从一个空项目建立一个类似于前面的登录界面。
Kris大鲨
2018/05/05
3.7K5
iOS开发系列——纯代码实现iOS开发
基础篇-UIApplication、UIWindow以及程序的启动流程看我就够了
这篇文章主要介绍下有关UIApplication、UIWindow以及程序的启动流程,通过这篇文章,相信你会更加理解iOS 的应用启动过程以及app应用级别的相关知识。
進无尽
2018/09/12
1.7K0
基础篇-UIApplication、UIWindow以及程序的启动流程看我就够了
2022完整版UIApplication的介绍以及应用
UIApplication是一个系统单例,不论在程序何时创建,都只有一块内存。它的应用有:设置手机桌面上app图标上显示的消息数量提醒,可以监控联网状态,打电话,打开网页,控制状态栏等。
iOS Magician
2023/03/22
4670
IOS开发系列——UIView专题之一:UIWindow篇
UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。
江中散人_Jun
2023/10/11
1K0
IOS开发系列——UIView专题之一:UIWindow篇
iOS-UIWindow详解
1.UIWindow简介 UIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow。 iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。 一个iOS程序之所以能显示在屏幕上,完全是因为它有UIWindow,也就是说,没有UIWindow就看不到任何UI界面。 状态栏和键盘都是特殊的UIWindow。 那么UIWindow是如何将View显示到屏幕上的呢
xx_Cc
2018/05/10
2.1K0
探索IOS App的生命周期之启动篇
因为刚刚涉入IOS APP开发,对IOS应用的使用的生命周期不是很熟,所以写下此日志,以防时间一长又忘记了。
江中散人_Jun
2022/03/08
7110
程序启动的完整过程
程序启动的完整过程 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([MJAppDelegate class])); } } 执行顺序 1.main函数 2.UIApplicationMain 创建UIApplication对象 创建UIApplication的delegate对象
用户1941540
2018/05/11
1.6K0
iOS 知识小集(Status Bar变换)
iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改变状态栏颜色和控制状态栏显示和隐藏的API,在iOS 的不同版本中也发生了很多变化。
Haley_Wong
2018/08/22
1.4K0
iOS 知识小集(Status Bar变换)
iOS四大对象之UIWindow及四大对象之间的关系1. UIWindow/使用纯代码加载根控制器2. UIWindow的创建过程3. 四大对象之间的关系
1. UIWindow/使用纯代码加载根控制器 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow -iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 创建的第一个对象是:UIApplication 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow 。也就说,没有UIWindow,就看不见任何UI界面 1.1 手工创建一个
stanbai
2018/06/28
1.8K0
UITabBarController实现Tab切换
在很多的应用中,基本都是使用Tab方式进行模块间的切换。在Android中很多控件可以实现这类效果,TabLayout、TabHost… 而在iOS中系统为我们提供了UITabBarController类来实现Tab页面之间的切换。有几个页面我们就创建几个UINavigationController,然后通过tabbar.viewControllers = @[navi1, navi2, navi3…]; 设置给UITabBarController。在进行Tab切换的设计思想上Android和iOS是
xiangzhihong
2018/02/06
2.1K0
UITabBarController实现Tab切换
原生iOS嵌入Unity导出的Xcode工程
将classes中main.mm 中的代码复制到项目的main.m中 并把后缀也改为mm 并将
老沙
2019/09/27
2.3K0
iOS微信支付简单的使用
APP微信商户申请APPID步骤地址 微信支付 SDK与 Demo地址下载 微信SDK与 Demo 把微信支付 SDK 拖到工程上 SDK 添加微信支付依赖库
LeeCen
2018/10/11
1K0
iOS微信支付简单的使用
相关推荐
从0开发一款IOS APP(第一天)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档