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

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

本文主要介绍了iOS开发中ViewController的页面跳转和弹出方式。ViewController是MVC开发模式中的重要类,有需要的朋友可以参考一下。

ViewController 页面跳转

当从一个控制器跳到另一个控制器时,通常有以下两种类型:

1.使用UINavigationController,调用pushViewController进行跳转;这样,通过堆叠和弹出的方式来管理控制器。调用popViewControllerAnimated方法返回。

复制代码如下:

picgimageviewcontroller * ickImageViewController=[[picgimageviewcontroller alloc]init];

[self . navigation controller pushViewController:ickImageViewController animated:true];

【ickImageViewController发布】;

2.使用UIViewController自带的presentModalViewController进行跳转;调用dismissmodalviewcontrolleranimed方法返回。

复制代码如下:

picgimageviewcontroller * ickImageViewController=[[picgimageviewcontroller alloc]init];

[self presentModalViewController:ickImageViewController动画:是];

//返回

[self dismissModalViewControllerAnimated:是];

有模式地呈现视图控制器

一、主要用途

弹出模态ViewController是IOS开发中非常有用的技术。UIKit提供了一些专门用于模态显示的视图控制器,如UIImagePickerController等。弹出模态ViewController主要用于以下情况:

1.收集用户输入信息。

2.某些内容的临时呈现

3.临时改变工作模式。

4.改变相应设备的方向(用于两个ViewController用于不同方向的情况)

5.显示新的视图级别。

这些情况会暂时中断程序的正常执行过程,主要作用是收集或显示一些信息。

二、几个概念和常用设置

1、presenting view controller Vs presented view controller

当我们在视图控制器A中显示视图控制器B时,A充当呈现视图控制器(弹出VC),B是呈现视图控制器(弹出VC)。官方文件提出,两者之间的互动可以通过委托来实现。如果使用UIimagePickerController从系统相册中选择照片或拍摄照片,我们可以发现imagePickerController与弹出它的VC之间的交互是通过UIimagePickerController Delegate实现的。所以在实际应用中,我们最好遵守这个原则,在弹出的VC中定义delegate,然后在弹出的VC中实现agent,这样两者的交互就可以更方便的实现。

2、Modal Presentation Styles(弹出风格)

通过设置呈现VC的modalPresentationStyle属性,可以设置视图控制器弹出时的样式。有以下四种样式,定义如下:

复制代码如下:

typedef枚举{

uimodalpresentationfull screen=0,

UIModalPresentationPageSheet,

UIModalPresentationFormSheet,

UIModalPresentationCurrentContext,

} UIModalPresentationStyle

UIModalPresentationFullScreen是指当VC被弹出时,呈现的VC是满满的全屏。如果弹出的VC的wantsFullScreenLayout设置为YES,则在状态栏下填充,否则不在状态栏下填充。

UIModalPresentationPageSheet是指当VC被弹出时,呈现的VC的高度和宽度与当前屏幕的高度和宽度相同,剩余未覆盖的区域会变暗,阻止用户点击。在这种弹出模式下,垂直屏幕的效果与UIModalPresentationFullScreen相同,而水平屏幕则会在两侧留下变暗的区域。

在这种模式下,呈现的VC的高度和宽度将小于屏幕尺寸,呈现的VC将显示在中央,在其周围留下一个黑暗的区域。

在UIMapRepresentation current context模式下,呈现VC的弹出方式与呈现VC的父VC相同。

四种方法在iPad上都有效,但在iPhone和iPod touch上,系统一直以UIModalPresentationFullScreen模式显示presented VC。

3、Modal Transition Style(弹出时的动画风格)

通过设置presented VC的modalTransitionStyle属性,可以设置presented VC弹出时场景切换动画的样式,定义如下:

复制代码如下:

typedef枚举{

UIModalTransitionStyleCoverVertical=0,

uimodal transitionstylefliphorizontal,

UIModalTransitionStyleCrossDissolve,

UIModalTransitionStylePartialCurl,

} UIModalTransitionStyle

我们可以看到有四种风格可供选择:从底部滑入、横向翻入、交叉溶解和翻页。四种风格不受设备限制,即无论是iPhone还是iPad,都会按照我们指定的风格显示过渡效果。

4、Dismiss Modal ViewController(消失弹出的VC)

消失呈现在VC中,我们可以通过调用以下两个函数中的任何一个来实现

复制代码如下:

MissModalviewControlleranimated://它将被放弃,不建议继续使用。

dismissViewControllerAnimated:完成:

谁会调用这种消失已呈现VC的方法:正确的做法是“谁污染谁治理”,即呈现VC调用上述方法取消已呈现VC的显示。这样做的好处是,如果一个VC真的没有让用户做出不同的选择,可能会弹出不同的视图控制器。当不再需要显示弹出的视图控制器时,可以直接调用【self dissmissimodalviewrolled】使其消失,而不管它具体显示的是哪种视图控制器。当然,系统在这里做了优化。当我们在presented VC中调用上述方法时,系统会自动将此消息传递到对应的Presented VC中,这样无论是谁弹出来的,在不再需要时都可以直接消失。在应用上,要看具体情况。如果presented VC需要与presented VC进行数据传输,建议在presented VC实现的代理函数中解除弹出视图控制器。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • nagios监控使用方法,nagios下载
  • nagios监控使用方法,nagios下载,Nagios的安装与使用详细教程
  • ios长截图方法,iOS怎样长截图
  • ios长截图方法,iOS怎样长截图,iOS实现简单长截图
  • ios网络视频播放器,Ios音乐播放器
  • ios网络视频播放器,Ios音乐播放器,iOS利用AVPlayer播放网络音乐的方法教程
  • ios状态栏怎么自定义,ios状态栏图标
  • ios状态栏怎么自定义,ios状态栏图标,iOS中状态栏的基本使用方法汇总
  • ios旋转立体图形游戏,ios 旋转屏幕
  • ios旋转立体图形游戏,ios 旋转屏幕,iOS动画特效之立方体翻转
  • iOS推送延迟,ios消息延迟的解决方法
  • iOS推送延迟,ios消息延迟的解决方法,对比分析iOS延迟执行的4种方式
  • ios build版本号规范,ios version什么意思
  • ios build版本号规范,ios version什么意思,iOS 项目中的version和build 详解
  • 电脑bios没有u盘启动选项怎么办,win10u盘启动bios设置后还是无法启动
  • 留言与评论(共有 条评论)
       
    验证码: