关于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就会出现内存泄露了。