iOS切换window根控制器 (转)】的更多相关文章

转自linfengwenyou 在运行过程中更改根控制器的方法:(假设:A为当前根控制器,B为要设的根控制器) 方法一: 1. appdelegate.m中 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; A *vc = [[A alloc] init]; // init会执行viewDidLoad viewWillAppear vc.view.backgroundColor = [UICo…
一.iOS在切换根控制器时,如何销毁之前的控制器?(切换rootViewController时注意的内存泄漏) 首先.在iOS的ARC机制下,任何对象,当没有其他对象对他进行强引用时,都会被自动释放. 而控制器的切换主要为两种方式 push和present modally. 1.0 push出来的子控制器,导航栏控制器会对该子控制器进行强引用(本质就是入栈,在入栈的过程中,可能不止是导航栏控制器对子控制器有强引用) 其中 push 对应着 pop 则控制器会被销毁.其push的本质是入栈,所有的…
//主屏幕设为webView CGRect frame = [UIScreen mainScreen].applicationFrame; UIWebView *webView = [[[UIWebView alloc] initWithFrame:frame] autorelease]; self.view = webView; UIApplication *app = [UIApplication sharedApplication]; // 显示状态栏 app.statusBarHidde…
iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storyboard中传递数据. 首先新建一个空工程,并添加一个根视图控制器类,如下图所示: # 在函数didFinishLunchingWithOption中添加几行代码,完成后如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 - (BOOL)application:(UIApplication…
1.AppDelegate.m老生常谈了,创建window,创建根视图rootViewController - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.win…
iOS开发UI篇—控制器的创建 说明:控制器有三种创建方式,下面一一进行说明. 一.第一种创建方式(使用代码直接创建) 1.创建一个空的IOS项目. 2.为项目添加一个控制器类. 3.直接在代理方法中创建一个控制器. #import "YYAppDelegate.h" #import "YYViewController.h" @implementation YYAppDelegate - (BOOL)application:(UIApplication *)appl…
iOS开发UI篇—控制器的View的创建 一.6种创建控制器View的方式 #import "NJAppDelegate.h" #import "NJViewController.h" /* 1.没有同名xib情况下 2.通过 storyboard 创建 3.有指定xib情况下创建 4.有同名xib情况 5.有同名去掉controll的情况 6.loadveiw */ @implementation NJAppDelegate - (BOOL)application…
前言 苹果在iOS 7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操作. nav_pop_origin.gif 这个操作的想法非常好,但是系统给我们规定的范围必须是屏幕左侧边缘才可以触发,这样实际使用过程中对于有些产品会产生不便,于是有些app就采取整个屏幕都响应这个手势并且pop动画还是用系统原生的,这样操作起来确实方便好多. nav_pop_custom.gif…
UIApplication 每一个应用都有自己的UIApplication对象,而且是单例的 通过[UIApplication sharedApplication]可以获得这个单例对象 一个iOS程序启动后创建的第一个对象就是UIApplication对象 单例对象的获取     UIApplication *app = [UIApplicationsharedApplication]; 隐藏状态栏     // 1.隐藏状态栏,ios7以后默认是由控制器控制的,如果要用UIApplicatio…
UINavigationController 继承于 UIViewController , 以栈的方式管理所 控制的视图控制器 . 至少要有一个被管理的视图控制器 ,这个控制器我们称作导航控制器的根视图控制器 . 不论什么继承自 UIViewController 的类(多态)都能够作为根控制器. 一: 工作原理: UINavigationController 通过 栈 的⽅式管理控制器的切换, 控制⼊栈和出栈 来展⽰示各个视图控制器 . UINavigationController 的 Cont…
终于效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> AnimatedNavigationController.h // // AnimatedNavigationController.h // 20_帅哥no微博 // /…
iOS中的控制器有三种创建方式: 1.通过storyboard创建 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Apply" bundle:nil]; SchemeViewController *schemeVC = [storyboard instantiateViewControllerWithIdentifier:@"SchemeViewController"]; 2.指定xib文…
ios的父控制器控制器和子控制器之间的注意点: " >> #warning 需要把新创建出来的控制器添加成子控制器 . 不然子控制器里面的子控件无法响应点击事件 " 一个控制器(UIViewController)里面在点击导航栏右上角按钮的时候要以动画形式来切换另一个控制器(LCMapViewController)   当时代码只是把新创建出来的控制器View添加到了(UIViewController)控制器上 并没有让创建的新控制器(LCMapViewController…
最近对view的周期等还不是非常清楚,就找到顶哥的文章,非常不错,就搬运过来了. 原文: http://www.cnblogs.com/wendingding/p/3770760.html 一.6种创建控制器View的方式 1 #import "NJAppDelegate.h" 2 #import "NJViewController.h" 3 /* 4 1.没有同名xib情况下 5 2.通过 storyboard 创建 6 3.有指定xib情况下创建 7 4.有同名…
1.modal 1.modal推出控制器的代码 2.modal关闭当前控制器的代码 3.modal推出的动画效果 4.modal在ipad中应用 2.如何给控制器加上导航栏 3.modal和导航控制器的区别 导航控制器切换是更改导航控制器上显示的子控制器的视图. 而moadl切换是直接把之前的控制器视图移除父视图,在将后来的视图添加进去. 4.更改窗口的根控制器,也是一种切换控制器的方法. 使用场合:A推出B控制,A控制器用完就不需要了. 5.plist属性列表列子 步骤一:搭建界面 步骤二:监…
  源代码下载链接:02-更改窗口的根控制器.zip18.0 KB // MJAppDelegate.h // //  MJAppDelegate.h //  02-更改窗口的根控制器 // //  Created by apple on 13-12-11. //  Copyright (c) 2013年itcast. All rights reserved. // #import<UIKit/UIKit.h> @interfaceMJAppDelegate : UIResponder <…
在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来作为子类,以向屏幕中添加逻辑. 2,导航控制器 - Navigation Controller 这个控制器呈现一个视图控制器的栈,应用程序可以在上面推入更多的视图控制器. 当新视图推入栈,或旧视图弹出栈时,导航控制器会以动画的形式(比如卷动)显示隐藏这些视图. 使用样例:系统“设置”应用程序 3,表…
一.添加maven依赖 <!-- 使用aliyun镜像 --> <repositories> <repository> <id>aliyun</id> <name>aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </repository> </repositories>…
1. viewdidload 设置代理 self.navigationController?.delegate = self 2.代理里面指定VC 隐藏 //MARK: - 导航栏delegate extension JYHomeViewController:UINavigationControllerDelegate { /// 此方法会在controller的viewWillApper方法调用后开始调用(使用时注意controller的生命周期) func navigationControl…
用标签页TitleSwitch切换不通的控制器 教程效果: 项目开发中效果: 各种源码: TitleSwitch.h 与 TitleSwitch.m (这个是修改过的升级版本) // // TitleSwitch.h // TitleSwitch // // Created by YouXianMing on 14/11/4. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h>…
#error:Xcode5根控制器使用xib展示,步骤 ⓵取消mainInterface ⓶右击file's owner对xib进行view-view连线,否则: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "CYLViewController&q…
当一个控制器有navigationBar&tabBar: 1.当导航控制器根控制器是tableViewController时,tableView 的frame原点是屏幕左上角,当向tableView上添加子控件到(0,0)点时,会添加到导航条左下角,即会有64的差距,这是由于可扩展区域引起的,本质是tableView继承scrollView,有contentSize的原因,总之使用有滚动特性的控件时,注意此因素影响,动态观察tableView的层次结构会发现有一层scrollView--->…
1.导航条内的button被点击 切换对应的控制器 让控制器作为调航条的代理 1.定义代理 2.遵循代理协议 3.实现代理 4.在合适的地方调用代理    当按钮被点击的时候切换控制器…
最近想到的一个小需求: 首页切换:点击一个切换按钮,能实现首页的风格.排版等变换,原理是用一个新的VC替换掉. 效果如下:   ====>====> 实现方式很简单: 以我的Demo为例,讲一下思路 1.将一下我的准备条件:底部是tabbarcontroller,每个里面装载一个Nav控制器 2.找到第一个tabbar,替换内部子控制器 核心代码实现: 构造一个新Nav let newVC = UIStoryboard(name: "CurriculumSchedule",…
iOS8以后, 苹果公司推出了UIPresentationController, 通过其(presentedController 和 presentingController)来控制modal控制器操作. 我对跳转 进行了封装, 只需要将单例对象设置为 VC的 transitioningDelegate! 自定义modal步骤: 1. 设置过渡代理 secVC.transitioningDelegate = [ROTransition sharedROTransition]; 2. 设置展示样式…
iOS开发UINavigation系列一——导航栏UINavigtionBar摘要iOS中的导航条可以附着于导航控制器之中使用,也可以在controller中单独使用,这篇博客,主要讨论有关导航栏的使用相关方法.iOS开发UINavigation系列一——导航栏UINavigtionBar一.导航栏的使用        在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigationBar,实际上,我们也可以在不使用导航控制器的前提下,单独使用导航栏,在UINavigat…
一.自定义视图(label-textField组合视图)      1.自定义视图:系统标准UI之外,自己组合出的新的视图.      2.优点:iOS提供了很多UI组件,借助它们我们可以实现不同的功能.尽管如此,实际开发中,我们还需自定义视图.积累自己的代码库,方便开发.自己封装的视图,能像UI空间一样,用于别的项目中,能大大降低开发成本,提高开发效率.          3.高质量代码的特点:可复用,可移植,精炼等.(高内聚,低耦合).           4.自定义视图步骤 根据需求的不同…
(1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界面,也就是用户看到的界面. (2)我们需要把导航控制器加载到APP中,需要把这个导航控制器设置为window的根视图控制器(都是控制器类,可以赋值),这样就相当于加载到了window里. (3)我们要在栈中新增或者删除一个视图控制器,就需要得到导航控制器,一般在栈中得所有视图控制器都有一个self.…
视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio…