UIViewController

来源:互联网 发布:mac上的翻墙工具 编辑:程序博客网 时间:2024/06/07 07:03

视图控制器:UIViewController 注意:视图控制器并不是视图,只是用来管理视图的,视图控制器自带一个与当前屏幕大小一样的view,如果要添加子视图,则需要添加到视图控制器view上显示:视图控制器自带的View默认是透明的

#pragma mark - 视图控制器的几个方法 -
//视图控制器的指定的初始化方法; (在创建该视图控制器的对象时,无论调用哪个初始化方法,该方法都会被执行;)
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
   self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        NSLog(@"视图控制器的初始化方法!");
    }
    return self;
}


//视图控制器加载视图的方法,(也就是说视图控制器加载根视图view(自带的view)的方法)
- (void)loadView{
    //调用系统加载视图的方法,加载视图控制器自带的View
    [super loadView];
    NSLog(@"视图控制器加载视图:%s,%d",__FUNCTION__,__LINE__);
}

//视图控制器加载视图完成时触发该方法;(也就是说当前视图控制器的自带根视图view对象已经加载完成(自带view创建对象完成之后调用的方法))

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"视图控制器加载视图完成:%s,%d",__FUNCTION__,__LINE__);

}


系统自带提示框

  //创建提示框对象
//    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"登录" message:@"是否登录?" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
//    //show 将提示框提到视图的最上层xianshi
//    [alertView show];
//    //释放所有权
//    [alertView release];

 
    //多个按钮时
    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"小东" message:@"要约吗" delegate:nil cancelButtonTitle:@"可以" otherButtonTitles:@"canrenjujue",@"等你有",@"不要啊", nil];
    [alertView show];
    [alertView release];






#pragma mark - 视图控制器生命周期有关的几个方法  于是视图显示与消失有关

//视图(视图控制器自带的根视图view)将要显示时触发此方法;
- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    NSLog(@"试图将要显示%s,%d",__FUNCTION__,__LINE__);
}
//试图已经显示时触发的方法
- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    NSLog(@"视图已经显示%s,%d",__FUNCTION__,__LINE__);
}
//视图将要消失时触发的方法
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    NSLog(@"视图将要消失%s,%d",__FUNCTION__,__LINE__);
}

//视图已经消失时触发的方法
- (void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
    NSLog(@"视图已经消失%s,%d",__FUNCTION__,__LINE__);
}



//当视图控制器收到内存警告时,会触发此方法
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    NSLog(@"你的内存太大!");
    //看是否可以安全的移除视图控制器
    //[self isViewLoaded] 看视图控制器是否已经加载根视图view;      !self.view.window没有在window上显示
    if([self isViewLoaded/*是否加载*/] && !self.view.window/*有没有在window上显示*/){
        //安全移除视图
        self.view = nil;
    }
    // Dispose of any resources that can be recreated.
}



#pragma mark - 屏幕旋转的几个方法
//设置当前屏幕发生旋转时 当前界面是否都支持旋转
- (BOOL)shouldAutorotate{
    return YES;
}
//设置当前屏幕旋转时,界面支持的旋转方向;该方法支持界面旋转的方向依赖于当前设备支持旋转的方向
- (NSUInteger)supportedInterfaceOrientations{
    //return UIInterfaceOrientationMaskAll;支持所有的方向
    return UIInterfaceOrientationMaskAllButUpsideDown; //不支持倒立
    //return UIInterfaceOrientationMaskLandscapeLeft; 支持左旋转 左横屏
    //return UIInterfaceOrientationMaskLandscapeRight;//支持右旋转 右横屏
}

//ios8之后系统才会调用的方法,当屏幕发生旋转时就会调用此方法,可以得到当前屏幕尺寸
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
    //得到当前屏幕尺寸
    NSLog(@"size = %@",NSStringFromCGSize(size));
}






0 0
原创粉丝点击