53-通过xib创建窗口控制器(initWithNibName方法底层)
来源:互联网 发布:优化方案系列丛书答案 编辑:程序博客网 时间:2024/05/16 02:26
#import “AppDelegate.h”
如果NibName=nil,默认加载与控制器类名相同的xib(rootViewController.h)
rootViewController *vc=[[rootViewController alloc] init]
init 方法底层调用的就是initWithNibName方法
//xib描述的控制器
#import "rootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/*
使用xib创建窗口控制器的常见错误:
1.
错误原因:当创建的xib里面是空的,没有任何描述控制器的View的时候就作为窗口控制器会报错
错误信息:was unable to load a nib named "rootViewController"
解决:在xib中添加一个View
2.
错误原因:没给xib中绑定Flie 'owner
错误信息:loaded the "rootViewController" nib but the view outlet was not set.'
解决:给xib中绑定Flie 'owner,告诉xib是描述哪一个控制器
3.
错误原因:没有连线
错误信息: nib but the view outlet was not set.
解决:给xib中Flie 'owner的View和当前xib连线
*/
/*
通过xib创建的控制器步骤
1.让xib有一个View描述控制器的View,设置Flie 'owner的class
2.把xib中的View跟控制器绑定(连线)
#import "rootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/*
使用xib创建窗口控制器的常见错误:
1.
错误原因:当创建的xib里面是空的,没有任何描述控制器的View的时候就作为窗口控制器会报错
错误信息:was unable to load a nib named "rootViewController"
解决:在xib中添加一个View
2.
错误原因:没给xib中绑定Flie 'owner
错误信息:loaded the "rootViewController" nib but the view outlet was not set.'
解决:给xib中绑定Flie 'owner,告诉xib是描述哪一个控制器
3.
错误原因:没有连线
错误信息: nib but the view outlet was not set.
解决:给xib中Flie 'owner的View和当前xib连线
*/
/*
通过xib创建的控制器步骤
1.让xib有一个View描述控制器的View,设置Flie 'owner的class
2.把xib中的View跟控制器绑定(连线)
*/
//创建窗口控制器 xib
//xib=Nib
rootViewController *rootVc=[[rootViewController alloc] initWithNibName:@"rootViewController" bundle:nil];
self.window.rootViewController=rootVc;
[self.window makeKeyAndVisible];
return YES;
//xib=Nib
rootViewController *rootVc=[[rootViewController alloc] initWithNibName:@"rootViewController" bundle:nil];
self.window.rootViewController=rootVc;
[self.window makeKeyAndVisible];
return YES;
/*
通过xib创建的控制器
通过xib创建的控制器
如果NibName=nil,默认加载与控制器类名相同的xib(rootViewController.h)
rootViewController *vc=[[rootViewController alloc] init]
init 方法底层调用的就是initWithNibName方法
initWithNibName方法底层
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
//1.首先判断下当前控制器是否重写了loadView方法
//2.如果没有重写,进行下面判断
//3.判断nibName否为空,如果为空,默认去寻找跟类名相同但是不带Controller的View.xib
//4.接着去寻找和类名完全相同的xib,ViewController.xib
//5.如果都没有找到,就自动创建一个颜色几乎透明的View
return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
}
*/
//3.判断nibName否为空,如果为空,默认去寻找跟类名相同但是不带Controller的View.xib
//4.接着去寻找和类名完全相同的xib,ViewController.xib
//5.如果都没有找到,就自动创建一个颜色几乎透明的View
return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
}
*/
}
0 0
- 53-通过xib创建窗口控制器(initWithNibName方法底层)
- 51-ViewController的view的创建,使用init或initWithNibName方法加载xib的底层实现(图解)
- ios-day11-02(控制器的多种创建方式。init方法创建、通过storyboard的创建、通过xib创建)
- 调用initWithNibName方法时不能写上.xib
- 调用initWithNibName方法时不能写上.xib
- iOS8 通过xib创建ViewController控制器 错误问题解决
- 使用xib创建控制器
- 50-main.storyboard底层,通过storyboard创建控制器
- 为控制器创建xib文件
- 通过xib创建viewcontroller
- 用Xcode6创建xib窗口
- 关于storyboard和xib创建控制器
- 通过storyboard创建控制器
- 通过storyboard创建控制器
- MFC之底层窗口创建
- Xcode6 用xib文件 创建窗口
- iOS 【通过xib加载描述window根控制器的view】
- 54-控制器View的get方法底层
- 20HOOK钩子和ADO
- 一键清理VC工程垃圾
- 从一位司机身上了解滴滴专车 与 一号专车
- 52-控制器的View
- shiro安全框架扩展教程--异常退出没有清除缓存信息处理方案
- 53-通过xib创建窗口控制器(initWithNibName方法底层)
- Flex DataGrid内容自动换行相关
- Java的类集框架二:Collection和Iterator接口
- 抽取plist资源的脚本
- 20150121 N2
- 卸载百度插件的方法
- 54-控制器View的get方法底层
- 55-多控制器(包括设置导航条)
- svn rebase and merge