一、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的更多相关文章

  1. IOS 在控制器间跳转实现过渡动画

    已经掌握了CALayer下的CATransition动画在同一个控制器下实现,但是在不同控制器间跳转又该如何实现呢? MyViewController *myVC = [[MyViewControll ...

  2. iOS 自定义view里实现控制器的跳转

    1.view里实现控制器的modal 拿到主窗口的根控制器,用根控制器进行modal需要的modal的控制器 场景:点击自定义view里的按钮实现控制器的modal UIViewController ...

  3. iOS 控制器的跳转、页面四个方向的跳转

    指定滑动方向的跳转 CATransition *transition = [CATransition animation]; transition.duration = 0.3f; transitio ...

  4. 【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题

    初入Vue,手写路由跳转时的问题: toXxxRoute: () => { this.$router.push({'path': '/xxx', 'name': 'xxx'}) } 由于使用了箭 ...

  5. gerrit配置跳过审核直接push到gitlab

    项目中有存放项目相关的文档,这些项目需要配置跳过审核再提交的操作.现在需要给某些组配置不审核直接提交的权限 方法: 使用管理员账号,到 projects -> access 页面下配置 refe ...

  6. spring的控制器如何跳转到指定的视图

    1.控制器代码 2.跳转代码 return "greeting"; 引号内为跳转的页面,默认不需要加html

  7. iOS之input file调用相册控制器消失跳转到登陆页

    最近在做一个app要用到H5,其中有一个需求是要点击H5的的控件弹出系统相册,通过在H5的input file 中定义<input type="file" class=&qu ...

  8. React native路由跳转navigate、push、replace的区别

    由于没有系统的去学习RN,对路由跳转了解不多,只是跟着项目在做,抽点时间简单学习一下RN路由跳转方法区别,总结如下: 如上图,外部是一个栈容器,此时A页面在最底部,navigate到B页面,为什么此时 ...

  9. YII contoller控制器之间跳转的方法redirect

    一个contoller CustomerController里怎么调用另一个controller里的action,Acontoller调用SiteContoller的actionShow($id), ...

随机推荐

  1. Linux 设备模型浅析之 uevent 篇(2)

    Linux 设备模型浅析之 uevent 篇 本文属本人原创,欢迎转载,转载请注明出处.由于个人的见识和能力有限,不可能面 面俱到,也可能存在谬误,敬请网友指出,本人的邮箱是 yzq.seen@gma ...

  2. 【解决】UEFI+GPT模式下装系统(WIN7/WIN8)

    最近在家想把联想超极本重装系统,可是发现想简单了,预装WIN8的本本用的是UEFI+GPT模式,以前老毛桃装系统那一套不好用了,所以百度了一些方案,还没试,先记着. 1. WIN8 先说装WIN8,貌 ...

  3. HW3.18

    import javax.swing.JOptionPane; public class Solution { public static void main(String[] args) { Str ...

  4. Kooboo中怎么写Page Plugin -摘自官方文档

    Page plugin development Page plugin is an add-on to Kooboo CMS, and is responsible for making data s ...

  5. hdoj 3849 By Recognizing These Guys, We Find Social Networks Useful【双连通分量求桥&&输出桥&&字符串处理】

    By Recognizing These Guys, We Find Social Networks Useful Time Limit: 2000/1000 MS (Java/Others)     ...

  6. iOS 开发 NSLog调试小技巧

    NSLog其实是一个非常损耗性能的东西,当你在开发了很长时间的一个项目中,想必为了方便调试,里面会有很多的NSLog输出,为了优化性能,同时又方便调试,可以在pch中定义一个宏,既可以替换原有的NSL ...

  7. 1513:二进制中1的个数 @jobdu

    题目1513:二进制中1的个数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1341 解决:455 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: ...

  8. ListView多选操作模式详解CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL

    这篇文章我们将详细的介绍如何实现ListView的多选操作,文中将会纠正在使用ListViewCHOICE_MODE_MULTIPLE或者CHOICE_MODE_MULTIPLE_MODAL时容易犯的 ...

  9. Java解惑五:类之谜

    本文是依据JAVA解惑这本书,做的笔记.电子书见:http://download.csdn.net/detail/u010378705/7527721 谜题46 函数重载的问题. JAVA重载解析过程 ...

  10. Android将应用log信息保存文件

    相信大家在做应用调试的时候,不可能时时通过USB线连着电脑去查看log信息,所以,将应用的log信息保存到手机本地就很有必要了,有助我们从这些log信息中提取有用的部分,以解决一些bug,下面我把网上 ...