美文网首页APP & program
IOS15 Swift5 2种正向传值方式

IOS15 Swift5 2种正向传值方式

作者: Johnson_9d92 | 来源:发表于2022-01-27 16:09 被阅读0次

IOS15 Swift5 2种正向传值方式

例如自定义一个 UIView 名字叫LJView,继承UIView,搞个UIImageView控件 ,里面 搞个 成员属性
var urlStr: String!

, 在 其他controller里面调用了这个UIView了,
let vi1 = UIView.init() 了,但是 怎么正向传值, 让 urlStr 赋值呢?直接传值?
vi1.urlStr = "http://localhost:8080/demo.png" 直接这么写 , 这张图片会显示在控件里面呢?
答案是 肯定不会的。

第一种方式是。使用 didSet 监听器, 在成员变量后面监听 属性的值是否变化。
var urlStr: String! {
didSet {
guard let urlStr = urlStr else {
//做相应的赋值操作。。。
}
}
}
当然还有一种 属性监听器,叫做 willSet 将要设置的时候。要知道有这个方法

第二种方式 ,在 自定义的控件里面提供一个方法 也叫函数, 这个函数不能搞成私有的,必须对外暴露出去,,也不必使用public ,没有必要。直接写
func setImageUrl(_ urlStr: String){
self.urlStr = urlStr
}

外面在new 自定义View 后, 可以通过 对象调用该 方法。
let vi1 = LJView.init()
vi1.setImageUrl(urlStr: "aaa.png")

以上都是通过属性 正向传值 ,还有一种,通过构造函数,直接赋值,请看我其他博客文章。
大概过程就是重写init方法
private var imageURL: String!

overide init(imageURL: String){
self.imageURL = imageURL
super.init() // 这个 必须放在最后书写,否则报错。不能放在前面,
}

xcode此时会报错,还有添加一个 requied方法,点击fixed解决,该方法是从nib加载调用的方法

相关文章

  • IOS15 Swift5 2种正向传值方式

    IOS15 Swift5 2种正向传值方式 例如自定义一个 UIView 名字叫LJView,继承UIView,...

  • 几种iOS界面之间的传值方式

    几种iOS界面之间的传值方式 一.正向传值方式 (BOOL)application:(UIApplication ...

  • Vue页面间传值

    Vue传值的方式有正向传值和反向传值 正向传值:上一页面 --> 下一页面 路由传值 本地储存 eventbus ...

  • 微信小程序页面间传值

    小程序传值的方式有正向传值和反向传值 正向传值:上一页面 --> 下一页面 url 传值 本地储存 全局的 app...

  • iOS 常用传值方式

    总结 iOS 日常开发中的几种常用传值方式:正向传值代理传值block传值通知传值单例 文章代码:https://...

  • 页面传值-03

    一、传值分类 页面传值基本分为两种:正向传值和反向传值。 二、传值方式 传值,最基本的无非就是代理传值、通知传值、...

  • iOS 页面(代理、通知、block、单例、属性)传值

    一、传值分类 页面传值基本分为两种:正向传值和反向传值。 二、传值方式 传值,最基本的无非就是代理传值、通知传值、...

  • iOS 如何优雅地跨层通信

    1. 传值 (数据传递) 传值在程序开发中使我们每天需要面临的问题传值方式: 正向传值,逆向传值,跨层传值...一...

  • 【iOS开发细节】之- delegate代理的使用

    在iOS开发中、好多时候需要涉及到页面传值、而传值又分为正向传值和反向传值 一、 传值 1、正向传值 2、反向传值...

  • reactNative 之组件传值和反向传值

    在项目中我们经常会遇到传值,传值有正向传值和反向传值,比如1.正向传值:从A组件push到B组件传值2.反向传值:...

网友评论

    本文标题:IOS15 Swift5 2种正向传值方式

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