控制器的跳转-modal与push
一、modal与push
modal从下面往上盖住原来的控制器,一般上一个控制器和下一个控制器没有什么关联时用modal,比如联系人的加号跳转页面,任何控制器都可以用modal
push一般是上下文有关联时用,(比如设置界面的通用跳转页面)导航控制器才能用push
A控制器modal出B控制器,那么A控制器就会强引用B,如果不强引用,无法处理B的业务逻辑(比如点击按钮回答A),会报野指针错误

// modal另一个界面
- (IBAction)modal:(id)sender { // 创建modal的控制器
OneViewController *oneVc = [[OneViewController alloc] init]; // 把新创建的控制器的View添加到窗口上
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
[keyWindow addSubview:oneVc.view]; // 从下往上钻的动画
// 首先让oneVc的view显示在窗口的底部
oneVc.view.transform = CGAffineTransformMakeTranslation(0, keyWindow.bounds.size.height); // 动画,往上移动,还原形变
// [UIView animateWithDuration:0.5 animations:^{
// // 还原形变
// // CGAffineTransformIdentity清空所有的形变,所有的形变参数都是0
// oneVc.view.transform = CGAffineTransformIdentity;
// } completion:^(BOOL finished) {
// self.presentedVC = oneVc;
// }]; // A控制器modalB控制器,B控制器会被A控制器强引用
// modal一个控制器
[self presentViewController:oneVc animated:YES completion:^{ }]; } // modal:会把新控制器的view添加窗口上,但是不会修改窗口的根控制器
// modal:会把新控制器强引用,谁modal,谁就强引用,为什么要强引用,如果不强引用,新创建的控制器就会被销毁,就不能处理modal出来界面的业务逻辑.

关闭modal出来的控制器

- (IBAction)dismiss:(id)sender {
// modal出谁,谁就可以dismiss
[self dismissViewControllerAnimated:YES completion:nil];
}

控制器的跳转-modal与push的更多相关文章
- IOS 在控制器间跳转实现过渡动画
已经掌握了CALayer下的CATransition动画在同一个控制器下实现,但是在不同控制器间跳转又该如何实现呢? MyViewController *myVC = [[MyViewControll ...
- iOS 自定义view里实现控制器的跳转
1.view里实现控制器的modal 拿到主窗口的根控制器,用根控制器进行modal需要的modal的控制器 场景:点击自定义view里的按钮实现控制器的modal UIViewController ...
- iOS 控制器的跳转、页面四个方向的跳转
指定滑动方向的跳转 CATransition *transition = [CATransition animation]; transition.duration = 0.3f; transitio ...
- 【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题
初入Vue,手写路由跳转时的问题: toXxxRoute: () => { this.$router.push({'path': '/xxx', 'name': 'xxx'}) } 由于使用了箭 ...
- gerrit配置跳过审核直接push到gitlab
项目中有存放项目相关的文档,这些项目需要配置跳过审核再提交的操作.现在需要给某些组配置不审核直接提交的权限 方法: 使用管理员账号,到 projects -> access 页面下配置 refe ...
- spring的控制器如何跳转到指定的视图
1.控制器代码 2.跳转代码 return "greeting"; 引号内为跳转的页面,默认不需要加html
- iOS之input file调用相册控制器消失跳转到登陆页
最近在做一个app要用到H5,其中有一个需求是要点击H5的的控件弹出系统相册,通过在H5的input file 中定义<input type="file" class=&qu ...
- React native路由跳转navigate、push、replace的区别
由于没有系统的去学习RN,对路由跳转了解不多,只是跟着项目在做,抽点时间简单学习一下RN路由跳转方法区别,总结如下: 如上图,外部是一个栈容器,此时A页面在最底部,navigate到B页面,为什么此时 ...
- YII contoller控制器之间跳转的方法redirect
一个contoller CustomerController里怎么调用另一个controller里的action,Acontoller调用SiteContoller的actionShow($id), ...
随机推荐
- Unity 打包后文件系统访问的一个小细节
Android: 使用 File 类 来访文本文件系统不区分大小写:但是访问 jar 包内的文件是区分大小写的,比如使用 www类,都需要区分大小写. iOS: 使用 File 类 来访文本文件系统严 ...
- Linux中的模式转换
模式转换: 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式: a: 在当前光标所在字符的后面,转为输入模式: o: 在当前光标所在行的下方,新建一行,并转为输入模式: I:在当前 ...
- Weka 自动优化参数
import weka.core.*; import weka.classifiers.*; import weka.classifiers.meta.*; import weka.classifie ...
- A Tour of Go Short variable declarations
Inside a function, the := short assignment statement can be used in place of a var declaration with ...
- ASIHTTPRequest 中url参数中文乱码
ASIHTTPReques确实是在开发过程中,数据的传输,获取方面给我们很大的帮助.然而在一些方面也是需要一些的注意. 在我们使用ASIHTTPReques 进行get方式获取数据时,如果需要传入中文 ...
- D3D游戏编程系列(三):自己动手编写即时战略游戏之寻路
说起即时战略游戏,不得不提的一个问题是如何把一个物体从一个位置移动到另一个位置,当然,我说的不是瞬移,而是一个移动的过程,那么在这个移动的过程中我们如何来规划路线呢,这就不得不提到寻路了. 我所了解到 ...
- 49. Sort Letters by Case
最后更新 一刷 还是Partition,只不过这次是按照大小写字母来. public class Solution { public void sortLetters(char[] chars) { ...
- error C2589: “(”: “::”右边的非法标记 error C2059: 语法错误 : “::
1. 错误输出 ./zlibrary/ui/src/win32/w32widgets/W32VBorderBox.cpp(114) : error C2589: “(”: “::”右边的非法标记 ...
- CopyU!SW新版发布!
CopyU!SW新版发布,版本号为:2.1.412.213 主要更新内容如下: 此版本(2.1.412.213)主要作了如下更新: 1.修复了CopyU!SW版本中的运行模式规则的设定错 ...
- 【转】Java Thread.join()详解
http://www.open-open.com/lib/view/open1371741636171.html 一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: ? 1 ...