如何在 nib 中传递对对象的 init 方法的引用?
Posted
技术标签:
【中文标题】如何在 nib 中传递对对象的 init 方法的引用?【英文标题】:How to pass references to init method of object in a nib? 【发布时间】:2011-01-13 19:35:26 【问题描述】:我有一个 UIView 子类,它目前完全以编程方式组装自己。它有一个自定义的 initWithFrame:bundle: 初始化器,这是必要的,因为它使用传入的包来加载图像资源。
我想让这个视图成为一个更大的 nib 文件中的子视图,但是当 nib 加载代码到达它而不是我的自定义初始化程序时,将调用 initWithCoder。有什么方法可以将这个视图放在一个 nib 中并且仍然进行我的自定义初始化?
【问题讨论】:
【参考方案1】:是的,如果你的包是提前知道的,你也可以覆盖initWithCoder:
(阅读:你不需要它作为参数传入)。否则,不行。
【讨论】:
不幸的是,它没有提前知道,所以我想我坚持使用程序化方法。谢谢。【参考方案2】:如果您可以等到awakeFromNib
,您可以在那里进行初始化。但是,您仍然存在无法将捆绑包传递给方法的问题。由于awakeFromNib
在所有出口和操作的初始化和设置之后被调用,对你来说可能为时已晚。或许围绕笔尖加载系统重新设计会更好?
【讨论】:
developer.apple.com/library/ios/#documentation/UIKit/Reference/…-awakeFromNib
自 2.0 起在 iOS 上可用:developer.apple.com/library/ios/#documentation/UIKit/Reference/…
@Nathan,哈哈,你不到一分钟就打败了我!以上是关于如何在 nib 中传递对对象的 init 方法的引用?的主要内容,如果未能解决你的问题,请参考以下文章
使用方法[NSBundle loadNibNamed:xibName owner:[NSApplication sharedApplication]]加载Nib时如何传递参数?