关于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就会出现内存泄露了。
分享到:
相关推荐
在iOS开发中,`UIViewController`是苹果提供的一个核心视图控制器类,它是所有自定义视图控制器的基础。...在实际开发过程中,理解并灵活运用这样的分类,对于提升iOS应用的质量和兼容性至关重要。
通过学习这个`UIViewController Demo`源代码,开发者可以更好地理解`UIViewController`的生命周期、视图加载机制以及如何在不同情况下创建和使用视图控制器。同时,掌握这两种创建方式有助于提高代码的灵活性和可...
理解`UIViewController`的生命周期不仅有助于我们编写出更加健壮的应用程序,还能帮助我们在遇到内存警告或者性能问题时快速定位问题所在。 #### 一、初始化阶段 在`UIViewController`的生命周期中,一切始于初始...
1. **创建Category**:创建一个`UIViewController`的Category,例如`UIViewController+PageTracking`,这样可以在不修改原`UIViewController`的基础上添加新的功能。 2. **获取原始IMP**:获取需要替换的方法的原始...
总的来说,iOS应用中的多个UIViewController之间滑动切换涉及到了对UIViewController、UIPageViewController、UIScrollView等组件的理解,以及手势识别、页面管理等多方面的知识。通过熟练掌握这些技术,开发者可以...
通过实例学习,可以更好地理解和应用这些知识点,例如创建一个新的`UIViewController`子类,设计视图布局,处理用户交互,以及实现视图控制器之间的跳转等。在项目中实践这些概念,将使你对`UIViewController`有更...
本文将深入探讨UIViewController的生命周期及其主要属性和方法,帮助开发者更好地理解和运用这一关键组件。 首先,我们要理解UIViewController的生命周期,这是了解其工作原理的基础。生命周期包含了从创建、加载...
总之,理解`UIViewController`和`UITableViewController`之间的差异对于iOS开发者来说至关重要。在设计应用程序时,需要根据具体需求来决定使用哪种类型的控制器,以便更好地实现界面设计和用户体验。
首先,我们需要理解UIViewController和UIView的区别。UIView是显示内容和处理用户交互的基本单元,它负责绘制屏幕上的元素,如按钮、文本框等,并接收和处理用户的触摸事件。而UIViewController则是负责管理这些...
本篇文章将详细探讨`UIViewController`在iOS 5及后续版本中的新特性,并通过源码解析来深入理解这些功能。 1. **自动旋转和屏幕方向支持** 在iOS 5之前,开发者需要手动处理设备旋转的逻辑。但自iOS 5起,`...
在这个特定的场景中,"swift-UISegmentedControl使用ChildViewController切换UIViewcontroller"的标题表明我们将讨论如何利用`UISegmentedControl`来动态地切换`UIViewController`子类的实例,以此实现界面内容的...
在给定的标题“swift-UIViewController的一个封装底部带有GADBannerView”中,我们可以理解到这是一个特定的`UIViewController`子类,它的设计目标是在屏幕底部集成Google AdMob的`GADBannerView`广告展示。...
通过理解并熟练运用`UITabBarController`、`UINavigationController`和`UIViewController`,以及Auto Layout的约束,开发者可以构建出强大且灵活的应用界面。在实际项目中,结合Storyboard或XIB文件进行混合编程也是...
在HWPopController-master这个压缩包中,你将找到项目的源代码,包括主要的`HWPopController`类和其他辅助类,以及示例代码,可以帮助你更好地理解和使用这个库。通过阅读和学习这些代码,你可以进一步了解如何在...
该项目提供的API设计简洁,易于理解,使得开发者能够快速地为自己的应用添加个性化的转场效果。 首先,要使用`EasyTransitions`,你需要在你的项目中引入这个库。可以通过CocoaPods或Carthage进行集成,或者直接将...
首先,我们要理解`UIViewController`类别是什么。类别(Category)是Objective-C中的一个特性,允许我们向已有的类添加方法,而无需继承。在这个项目中,类别被用来扩展`UIViewController`的功能,添加了对交互式...
它们的生命周期管理对于理解应用程序的行为至关重要。在这篇教程中,我们将深入探讨这两个类的生命周期,以及如何在实际开发中运用。 首先,我们来看UIView的生命周期。一个UIView实例可以通过三种方式创建:`init`...
在Swift开发中,UI相关的控件是构建用户界面的关键元素,而手势识别是与用户进行交互的重要手段之一。本文将详细讲解如何利用PanGesture(滑动...对于Swift开发者来说,理解和掌握这些技术是提高应用程序质量的关键。
在iOS应用开发中,`UIViewController`是苹果提供的一种基础视图控制器类,它负责管理屏幕上的用户...通过学习和实践这样的项目,开发者可以深入理解iOS应用的底层工作原理,并提高其在没有标准库支持情况下的创新能力。