UIViewController了解

UIViewController理解

关于UIViewContrller的理解:

1.UIViewContrller之间的切换有三种方式:
一、UIViewController自身之间的调用:([self presentModalViewController:UIViewController animated:YES];) 对应的返回操作函数:[self dismissModalViewControllerAnimated:YES];这里的self代表的是UIViewController自己。其可设置四种动画模式:
case 0:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //底部向上 默认的动画方式
break;
case 1:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; //渐变
break;
case 2:
[ctrl setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; //翻转
break;
case 3:
[ctrl setModalTransitionStyle:UIModalTransitionStylePartialCurl]; //翻半也
break;
default:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //底部向上 默认的动画方式
break;


       二、通过UIViewController的子类UINavigationController这个号称为导航控制器的Controller来控制ViewContrller之间的切换,对应的调用函数,与返回函数分别是:[self.navigationController pushViewController:ctrl animated:YES]; 返回:([self.navigationController popViewControllerAnimated:YES];),也可直接指定返回到那一个ViewController:(- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated) 还可以直接返回到RootViewController:(- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated)

备注:小知识点设置navigationItem的backItem按钮上的文本,(self:navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回style:UIBarButtonItemStyleDone target:self action:@selector(action:)];)默认的文本是navigationItem的title;
    实现NavigationController的delegate可以在返回时做相应的更新操作(- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 

      三、就是UITabBarContrller其也是继承于UIViewController,主要是做图1这样的功能的 (图1)其缺点在于下面的图片不能自己控制大小和样式


如果使用controller之间的切换出来用于控制其它controller的那个Controller在程序运行中不会释放以外,其它的Controller只要调用了返回函数那么就会被清理掉。
备注:如果Controller或view中又线程或者定时器之类的动画操作如果没有结束那么这个Controller或view就会出现内存泄露了。