在调用 awakeFromNib 之前尝试在 UIView 中设置属性

Posted

技术标签:

【中文标题】在调用 awakeFromNib 之前尝试在 UIView 中设置属性【英文标题】:Trying to set a property inside a UIView before awakeFromNib is called 【发布时间】:2015-05-05 13:54:26 【问题描述】:

我是 swift 新手 - 我有 2 个视图控制器和一个 segue bitween。 我试图在加载之前在视图内设置一个属性。所以这是我的 uiview 中的一些代码 -

class ListUsersView: UIView 

  @IBOutlet var tableView: UITableView!  
  var dataSource: ListsUserDataSource?
  var nameForCellNib: String?

  override func awakeFromNib() 
      self.tableView.registerNib(UINib(nibName: nameForCellNib! , 
      bundle:NSBundle.mainBundle()), forCellReuseIdentifier: nameForCellNib!)
      ..
      ..
      ..
  

我很难在 awakeFromNib 之前设置 nameForCellNib(在 awakeFromNib 中需要它)谢谢!

【问题讨论】:

感谢您的信息 好吧,我再写一些。我试图指出问题.. 【参考方案1】:

如果您想在拥有var 后立即使用它,可以像这样使用它的didSet 观察者:

class ListUsersView: UIView 

    @IBOutlet var tableView: UITableView! 
        didSet
            tableView.registerNib(UINib(nibName: nameForCellNib!, bundle:NSBundle.mainBundle()), forCellReuseIdentifier: nameForCellNib!)
        
    
    .
    .
    . 


【讨论】:

以上是关于在调用 awakeFromNib 之前尝试在 UIView 中设置属性的主要内容,如果未能解决你的问题,请参考以下文章

awakeFromNib 啥时候被调用?

initWithFrame 未调用,但 awakeFromNib 是

init 和 awakeFromNib

为啥在使用情节提要时反复调用 AwakeFromNib?

awakeFromNib() 在滚动开始时在 UICollectionViewCell 子类中调用了两次

awakeFromNib 无法从 UILabel 获取值,也无法禁用 UIButton