【问题标题】:How to accès iboutlet from another class in swift如何在 swift 中从另一个类中访问 iboutlet
【发布时间】:2019-04-09 08:26:13
【问题描述】:

所以我想从视图控制器更改按钮颜色,但问题是我的按钮引用了我的集合视图类。我不知道如何从另一个类调用按钮

集合视图

class CollectionViewCell: UICollectionViewCell {

@IBOutlet weak var menusButton: UIButton!

public func MenuButtonFunction (){
menusButton.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
}

视图控制器

var menuButtonFunc = CollectionViewCell()
override func viewDidLoad() {
    super.viewDidLoad()
menuButtonFunc.MenuButtonFunction()

     doneButton.layer.cornerRadius = 10

}

【问题讨论】:

  • 在接收类(拥有按钮)中创建一个公共函数,该函数在内部修改按钮,然后从您的其他类调用此函数
  • 结果为零
  • 你在开玩笑吗?结果是什么,我们怎么知道你的意思?请阅读MCVE 并更新您的问题。
  • 对不起.. 我是 swift 新手,我已经分享了我的代码,但是打开值时结果是错误
  • 你的类不是一个视图,它是一个单元格。该单元属于一个视图类,该视图类和该视图由我假设的视图控制器类处理,这就是您需要访问按钮的方式,-> view controller -> view -> cell -> button

标签: swift iboutlet


【解决方案1】:

我的第一反应是使用delegationobserver 模式。

如果不了解您的代码的更多细节,我不能说更多(即,如果它真的很简单,视图层次结构,那么Joakim Danielson 仅使用公共函数的评论可能是您最好的解决方案) .

【讨论】:

  • 如何调用函数?调用函数时我的结果为零
【解决方案2】:

您不应该使用构造函数调用来实例化您的单元格 - 它不会创建子项,这就是您的按钮上有 nil 引用的原因。您应该调用dequeueReusableCell UICollectionView 方法来获取完全创建的单元格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多