美文网首页
点击图片查看大图

点击图片查看大图

作者: 行知2016 | 来源:发表于2017-01-02 15:14 被阅读0次
  1. 用ViewController实现一个弹窗,presentViewController来弹出窗口
  1. @interface BNRImagePreviewController,包含一个 UIImageView 来展示大图
Step 1:
声明了一个 BNRImagePreviewController,给它创建了一个xib,
拖了一个 UIImageView 上去,设置了约束。

Step 2:
首先想在 Cell 的 ThumbNailView 的 tap 事件响应里面去 prsentViewController,
发现不行,View不能直接presentViewController或者pushViewController

Step 3:
为了解决这个问题,声明了一个委托,让 TableViewController 来展示 BNRImagePreviewController。

Step 4:
Preview ViewController 展示出来了,但是图像没有展示出来。

Step 5:
发现原因是在创建 ViewController 之后,马上给 controller 的 imageview 赋值是不行的
vc.imageView.image = image;
这个时候imageView还是nil

Step 6:
解决办法是给 ViewController 增加了一个 UIImage 的属性来存放要展示的图像,
在viewDidLoad里面给imageView.image赋值

问题解决了,但根本原因是什么?这里要对 View Controller 的创建流程有更深入的了解。

View Controller 的生命周期

- init
- initWithNibName
  View Controller 被创建了,数据进行了初始化,但 view 还是 nil
- loadView
- viewDidLoad
  view 被加载起来了,在这里可以替换成自定义的 View
- viewWillAppear
   view 即将被显示,已经有了bounds,但还没有被加到了 superview 中,可以对View的外观进行调节
- viewDidAppear
   view 被显示了,已经被加到了 superview 中,有了 frame
- viewWillDisappear
- viewDidDisappear
 - viewDidUnload

相关文章

网友评论

      本文标题:点击图片查看大图

      本文链接:https://www.haomeiwen.com/subject/thdwvttx.html