码迷,mamicode.com
首页 > 其他好文 > 详细

模拟loadView

时间:2015-08-21 21:20:05      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

- (id)init{

    if (self = [super init]) {

        NSLog(@"%@",self.view);

    } 

    return self;

}

 

- (UIView*)view{

    //若view存在,则返回

    if ([self valueForKey:@"_view"]) {

        return [self valueForKey:@"_view"];

    }

    //若不存在,则先调用loadView,再调用viewDidLoad,再返回view

    [self loadView];

    [self viewDidLoad];

    

    return [self valueForKey:@"_view"];

}

 

- (void)loadView{

    //判断xib文件是否存在

    NSFileManager *manager = [NSFileManager defaultManager];

    //xib文件路径(后缀名是nib)

    NSString *path = [[NSBundle mainBundle] pathForResource:NSStringFromClass([self class]) ofType:@"nib"];

    

    if ([manager fileExistsAtPath:path]) {

        //通过xib文件加载视图

        //loadNib...可以返回一个xib文件中视图元素数组(view,view1

        //owner参数必须要写,如果不写,则不会对声明IBOutlet的变量赋值

        [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];

        return;

    }

 

    //若不存在,则创建一个新视图

    UIView *myView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];

    myView.backgroundColor = [UIColor redColor];

    

    [self setView:myView];

}

- (void)viewDidLoad {

    [super viewDidLoad];

    

}

 

模拟loadView

标签:

原文地址:http://www.cnblogs.com/ymhb/p/4748928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!