做一网站要什么软件,山东莱芜最新新闻,二级分销被国家叫停,如何防止网站挂马一、关于这个手动创建Window呢,给大家说完了 1.但是呢,要给大家补充一个东西,
有时候,有的框架,可能会用到什么东西呢,我写到下面: [UIApplication sharedApplication] 什么东西,是不是应用程序对象,
然后呢,keyWindow
是不是拿到它的主窗口, 然后呢,add什么东西…一、关于这个手动创建Window呢,给大家说完了 1.但是呢,要给大家补充一个东西,
有时候,有的框架,可能会用到什么东西呢,我写到下面: [UIApplication sharedApplication] 什么东西,是不是应用程序对象,
然后呢,keyWindow
是不是拿到它的主窗口, 然后呢,add什么东西,
[UIApplication sharedApplication].keyWindow addSubview: 然后,加了一个它自定义的一个什么Window啊,customWindow
[[UIApplication sharedApplication].keyWindow addSubview:customWindow]; 然后呢,加进去以后,跑了半天,一点儿效果都没有, 那提示大家,这种情况,你怎么解决呢,
就不要去用这种方式去加了啊,
就把它改一下,就行了,
[UIApplication sharedApplication] 它是不是有一个什么属性: windows属性: 然后呢,你给它拿个lastObject [[UIApplication sharedApplication].windows lastObject];
把它加到最后一个窗口,
然后呢,再去addSubview, [[[UIApplication sharedApplication].windows lastObject] addSubview:customWindow]; 把这个customWindow加进去,了解一下啊,这个, 这个不需要大家掌握的,以后你在写的时候,如果别人的有些东西你显示不出来,有个印象就行了, 知道怎么去解决,
好吧,那我们把这个就关了,
然后,接下来,给大家介绍一下下面一个东西, 二、关于我们这个“三种加载控制器的方式“
1.那,现在我们学的都是哪些加载控制器,
1)现在大家了解的,是不是有一个storyboard,
2)还有一个,就是我们刚刚演示的,加载自定义控制器的时候,直接自定义了一个控制器,那种方式,相当于一个纯代码的方式, 明白吧,因为我们没有storyboard,
也没有其他的东西,
2.那接下来呢,要给大家介绍的,三种创建控制器的方式,
1)第一种,就是纯代码,这个是不是跟我们刚才那个重复了,所以我们待会儿就直接快一点儿给它过去,就行了,
2)第二种,就是通过storyboard,创建控制器,那前面的时候,我们一直在用,知道它是通过storyboard加载,但是呢,我们并不知道怎么去加载,对吧,那你手动去实现一下,那就理解了,
3)第三种,就是通过xib创建控制器 这个xib,我们是不是常见,
但是,没有用,对吧,
那接下来呢,我们就来给大家看一下这三种方式加载控制器,怎么去用
三、纯代码方式加载控制器
1.那首先呢,我先新建一个项目, 新建一个项目, 给它来个Name, - 3种加载自定义控制器的方式 我们点Next,看一下这是第几份代码, 是不是05了,
05 - 3种加载自定义控制器的方式, 然后呢, 首先,我们加载自定义控制器,三种加载控制器的方式,
那我呢,还是,一样的,我把系统的这些先给它删了, 自己来实现,
选中这三个:ViewController.h、ViewController.m、Main.storyboard 选中这三个,删掉,
Delete, Move to Trash, 2.删完之后,还得干嘛, 是不是把info.plist,Main,改掉,
但是呢,你在这个项目这个Target,里面这个General, 看到没有,这个General显示蓝色的时候,意味着它选中了,
这里面有一个Main Interface, 在这儿呢,Delete,然后,回来, 看info.plist里面, 是不是也就没有了,
而且那个Main storyboard file base name,都没了,
所以呢,这种方式也可以的啊,
然后呢,我们就,把三种加载自定义控制器的方式,都来一遍,
1)第一种:通过代码去创建控制器
2)第二种:通过storyboard去创建控制器
3)第三种:通过xib去创建控制器 建三个文件夹,分门别类的去存放代码,
1)Code
2)Storyboard
3)xib
那,首先,加载自定义控制器, 还是,我们先把前面坑给它先挖好,
1)第一步:先创建Window 2)第二步:设置窗口的根控制器,然后呢,你得加载,对吧 3)第三步:将窗口作为主窗口并可见 好,我们再写一遍啊,后面就直接用了,
好,那我把这个1、3、先写了,
1)创建window
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window = 等于什么,是不是UIWindow alloc,直接让它等于屏幕的大小吧,[UIScreen mainScreen].bounds
3)将窗口作为主窗口并可见
[self.window makeKeyAndVisible]; 让这个self.window,makeKeyAndVisible,
2)设置窗口的根控制器
然后这步呢,就是加载控制器,设置它的根控制器,
哦,这里写错了,makeKeyAndVisible,对吧, makeKeyAndVisible,
然后,如果这么写,makeKeyWindow,是不是得加一个hidden = NO
[self.window makeKeyAndVisible]; makeKeyAndVisible, 然后呢,接下来,是不是把self.window.rootViewController,要指定一下, self.window.rootViewController = ? 但是呢,现在我们没有控制器
//self.window.rootViewController = ? 现在,我们没有控制器,对不对,那,怎么办呢,
1)首先,第一种方式,Code,已经演示过了,自定义控制器,现在还记得吗,是不是Command + N, 现在,不用UIViewController,了啊,
我用UITableViewController,
给大家演示一下,
是不是这里选择Cocoa Touch Class, 点Next,继承自UITableViewController 继承自UITableViewController Name:HMTableViewController 点Next, 点Next, 那,现在是不是这个代码就有了,
它的类,这是实际上就是一个控制器类,
然后呢,再回到AppDelegate.m,文件中, AppDelegate,
然后,在第10行代码呢,我给它加一个导入头文件,
#import “HMTableViewController.h“ 对吧, 这种方式呢,就相当于通过纯代码创建控制器,
怎么创建,
HMTableViewController *tableVc = [[HMTableViewController alloc] init]; 然后呢,把它指定为我们窗口的根控制器,
self.window.rootViewController = tableVc; 模拟器换成iPhone6S, command + R, 那我们稍等一下啊,把它运行起来,现在它显示