首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

self.window.rootViewController vs window addSubview

是iOS开发中关于视图控制器的两种不同方式。

  1. self.window.rootViewController:
    • 概念:self.window.rootViewController是一个根视图控制器,它是应用程序窗口的根视图控制器,负责管理应用程序的主要界面。
    • 分类:self.window.rootViewController属于视图控制器的一种,用于管理应用程序的界面。
    • 优势:使用self.window.rootViewController可以方便地管理应用程序的界面层次结构,包括导航、标签栏、模态视图等。
    • 应用场景:适用于需要使用多个视图控制器来管理应用程序界面的情况,例如使用导航控制器或标签栏控制器来管理多个界面。
  2. window addSubview:
    • 概念:window addSubview是将一个视图添加到应用程序窗口中的方法,用于显示一个视图。
    • 分类:window addSubview属于视图的一种方法,用于将一个视图添加到应用程序窗口中。
    • 优势:使用window addSubview可以将一个视图添加到应用程序窗口中,实现自定义的界面显示。
    • 应用场景:适用于需要自定义界面显示的情况,例如自定义的弹窗视图或特殊效果视图。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS-UIWindow详解

mainScreen].bounds]; //创建窗口的根控制器,并且赋值 UIViewController *rootVc = [[UIViewController alloc]init]; self.window.rootViewController...[self.window addsubview:rootVc.view];可直接将控制器的view添加到UIWindow中,并不理会它对应的控制器,但是这种方法违背了MVC原则,当我们需要处理一些业务逻辑的时候就很麻烦了...([self.window addsubview:rootVc.view];没有设置根控制器,所以不能跟着旋转)。 设置根控制器可以将对应界面的事情交给对应的控制器去管理。...UIViewController *vc = [stroyboard instantiateViewControllerWithIdentifier:@"red"]; // 设置窗口的根控制器 self.window.rootViewController...initWithNibName:@"VC" bundle:nil]; //vc.view.backgroundColor = [UIColor redColor]; self.window.rootViewController

1.9K40

程序启动的完整过程

mainScreen].bounds]; //创建跟控制器 UIViewController *VC = [[UIViewController alloc] init]; //加到窗口的跟控制器中 self.window.rootViewController...= VC; //把控制器的View加到窗口中,,不加到跟控制器中也可以显示 //[self.window addSubview:rootVc.view]; //显示窗口 //[self.window...makeKeyWindow];//设为主窗口 [self.window makeKeyAndVisible];//设为主窗口且显示 //self.window.hidden = NO;//只显示 窗口不能显示的原因...UIViewController *rootVc = [storyboard instantiateInitialViewController]; // 3.设置窗口的根控制器,并且显示窗口 self.window.rootViewController...为控制器 UIViewController *rootVc = [[UIViewController alloc] initWithNibName:@"VC" bundle:nil]; self.window.rootViewController

1.5K150

iOS开发系列——纯代码实现iOS开发

相同,位置为(0,0) mainController.view.frame=self.window.bounds; //设置此控制器为window的根控制器 self.window.rootViewController...initWithFrame:passwordRect]; _password.borderStyle=UITextBorderStyleRoundedRect; [self.view addSubview...self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];//添加点击事件 [self.view addSubview...UIView就是指界面可见的控件元素,所有的控件最终都继承自UIView,UIView中还可以添加其他UIView(通过addSubView方法); 在一个iOS应用中必须有一个主窗口UIWindow(...,这个控制器距离UIWindow是最近的;设置一个控制器为根控制器和直接通过addSubView添加控制器的视图(view属性)到window并不完全一样(例如如果仅仅添加控制器视图那么应用虽然可以显示但是不支持旋转

3.5K60

IOS开发系列——UIView专题之一:UIWindow篇

addsubview:vc.view]; (2)设置uiwindow的根控制器,自动将rootviewcontroller的view添加到window中,负责管理rootviewcontroller...的生命周期 [self.window.rootviewcontroller=vc]; 两个方法的区别: 以后的开发中,建议使用(2).因为方法(1)存在一些问题,比如说控制器上面可能由按钮,需要监听按钮的点击事件...NSLog(@“%@“,self.window.rootviewcontroller); 有storyboard的项目中的创建过程: 当用户点击应用程序图标的时候,先执行Main函数,执行UIApplicationMain...因为Window有makekeyandvisible这个方法,可以让这个Window凭空的显示出来,而其他的view没有这个方法,所以它只能依赖于WindowWindow显示出来后,view才依附在Window...alloc] initWithFrame:CGRectMake(10,10,100,40)]; tx2.borderStyle= UITextBorderStyleRoundedRect; [self.w2addSubview

65330

iOS中动态更新补丁策略JSPatch运用基础一

encoding:NSUTF8StringEncoding error:nil];     //运行js文件     [JPEngine evaluateScript:script];     self.window... = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];     self.window.rootViewController =... [[ViewController alloc]init];     [self.window addSubview:[self genView]];     [self.window makeKeyAndVisible...(label);                 self.view().addSubview(view)             }     }); 除了上面的代码,在ViewController.m...调用类方法:通过类名打点的方式来调用类方法,格式类似如下,括号内为参数传递: UIColor.redColor() 调用实例方法:通过对象打点的方式调用类的实例方法,格式如下,括号内为参数传递: view.addSubview

86020

UIViewController生命周期

三、UIView生命周期其他点 layoutSubviews的被调用的时机: addSubview会触发layoutSubviews,比如viewA add viewB,第一次添加A和B的layoutSubviews...的UIView才会调用(程序同一时间只有一个window为keyWindow,可以简单理解为显示在最前面的window为keywindow) Push到下一层的顺序 viewWillDisappear-...addsubview:vc.view]; (2)设置uiwindow的根控制器,自动将rootviewcontroller的view添加到window中,负责管理rootviewcontroller...的生命周期 [self.window.rootviewcontroller=vc]; 4、KeyWindow 当前app可以打开的多个window 如系统状态栏其实就是一个window ,程序启动的时候创建的默认的...window ,弹出键盘也是一个window ,alterView 弹框也是window

1.8K10
领券