iOS开发中ViewController的页面跳转和弹出模态

2020-01-14 16:12:41王旭
易采站长站为您分析iOS开发中ViewController的页面跳转和弹出模态,ViewController是MVC开发模式中一个重要的类,需要的朋友可以参考下  

ViewController 页面跳转
从一个Controller跳转到另一个Controller时,一般有以下2种: 
1、利用UINavigationController,调用pushViewController,进行跳转;这种采用压栈和出栈的方式,进行Controller的管理。调用popViewControllerAnimated方法可以返回。 

复制代码
    PickImageViewController *ickImageViewController = [[PickImageViewController alloc] init]; 
    [self.navigationController pushViewController: ickImageViewController animated:true]; 
    [ickImageViewController release];

 


2、利用UIViewController自身的presentModalViewController,进行跳转;调用dismissModalViewControllerAnimated方法可以返回。 

复制代码
    PickImageViewController *ickImageViewController = [[PickImageViewController alloc] init]; 
    [self presentModalViewController:ickImageViewController animated:YES]; 
//返回 
[self dismissModalViewControllerAnimated:YES];

 


Present ViewController Modally 
 
一、主要用途
 
  弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等。弹出模态ViewController主要使用于一下这几种情形:
 
  1、收集用户输入信息
 
  2、临时呈现一些内容
 
  3、临时改变工作模式
 
  4、相应设备方向变化(用于针对不同方向分别是想两个ViewController的情况)
 
  5、显示一个新的view层级
 
  这几种情形都会暂时中断程序正常的执行流程,主要作用是收集或者显示一些信息。
 
二、几个概念和常用设置
 
1、presenting view controller Vs presented view controller
 
  当我们在view controller A中模态显示view controller B的时候,A就充当presenting view controller(弹出VC),而B就是presented view controller(被弹出VC)。官方文档建议这两者之间通过delegate实现交互,如果使用过UIImagePickerController从系统相册选取照片或者拍照,我们可以发现imagePickerController和弹出它的VC之间就是通过UIImagePickerControllerDelegate实现交互的。因此我们在实际应用用,最好也遵守这个原则,在被弹出的VC中定义delegate,然后在弹出VC中实现该代理,这样就可以比较方便的实现两者之间的交互。