Modal

  • 切换控制器

  • 模态

  • 任何控制器都能通过modal的形式展示出来

  • 新的控制器从屏幕底部往上钻

  • 弹出的控制器和之前的控制器没有太大联系的时候

    • 应用场景:注册某个app
  • presentViewController:animated:completion:^{}

  • dismissViewControllerAnimated:completion:

modal

  • modal不仅可以在modal出来的控制器里dismiss,还可以在当前控制器里dismiss掉

  • 问题一:modal出来的控制器要不要强引用?

    • 要强引用
    • 由当前的presentedViewController强引用
  • 问题二:modal出来的控制器的view,是添加到哪里的?

    • modal出来的控制器是添加到窗口上的
  • 模拟一个modal效果

    • view添加到窗口(keyWindow)上面
      • [UIApplication sharedApplication].keyWindow
    • 修改y值,为屏幕宽度
      • 取出frame(三步)
        • 临时frame存
        • 改临时的frame的y
        • 把临时的frame赋值给控制器view的frame
    • 添加动画
    • modal出来的控制器的view被window强引用
    • modal出来的控制器没有强引用
      • 注意:如果控制器被销毁,那么它里面的业务逻辑是没有办法处理的
      • 解决:设置控制器属性,给控制器属性赋值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展示出来 Mo...
    木木小林酱阅读 5,130评论 0 1
  • Modal 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展...
    翻这个墙阅读 3,693评论 0 0
  • Modal 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展...
    iOS_Cqlee阅读 3,184评论 0 4
  • 一、简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式...
    SessionSinGod阅读 12,478评论 6 3
  • 需求:点击一个按钮,modal一个控制器出来,该控制器不完全覆盖控制器。展开方式:按钮处从上往下展开,要求不能使得...
    alige阅读 3,808评论 0 2