关于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就会出现内存泄露了。
分享到:
相关推荐
UIViewController添加多个UIViewController。可以把UIViewController的View当作容器,让其他UIViewController添加进该View,并可以在多个UIViewController间切换。
UIViewController+Present,这个分类是用来适配iOS13之后UIViewController模态弹出问题的. 使用这种方式就不用去项目中挨个找模态弹出了.
UIViewController Demo源代码 创建带nib和不带nib文件
UIViewController生命周期详解及方法调用
AICustomViewControllerTransition, 为iOS创建定制UIViewController转换的简单而简洁的方法 AICustomViewControllerTransition为iOS创建定制UIViewController转换的简单而简洁的方法没有限制,也没有实现...
自己写了一个Dome 实现了UIView或者时UIViewController 缩放动画效果
UIViewController学习 并且带有实例
iOS 多个UIViewController之间滑动切换
Mehod Swizzling 实现页面统计
使用runtime机制,隐藏iOS导航栏返回按钮标题的文字,并不会有其他的隐患。
iOS5 UIViewController 新特性 UIViewController的切换
IOS弹出自定义UIViewControllerIOS弹出自定义UIViewController
UISegmentedControl使用ChildViewController切换UIViewcontroller
iOS, UIViewController, UIView, UIViewController的加载方式和UIView的加载详解
主要介绍了iOS开发中的UIViewController,其中以UIViewController作为着重讲解,需要的朋友可以参考下
讲述了UIViewController和UITableViewController,有利于初学者
页面跳转 UITabBarController+UINavigationController+UIViewController
ios5中UIViewController新使用方法源码 http://mobile.51cto.com/iphone-313146.htm
第五节 编程定制UIViewController.docx
UIViewController-KeyboardAdditions 迅捷版 对于Swift兼容版本,请查看 描述 UIViewController+KeyboardAdditions类别通过使用几种简单方法扩展UIViewController类来简化键盘处理逻辑。 支持自动版式和基于frame的...