iphone - initWithNibName VS NSBundle 的 loadNibNamed

标签 iphone objective-c cocoa-touch uitableview nib

我注意到有两种不同的方式来加载 nib/xib 文件:

  1. 通过 UIView 的 initWithNibName:bundle: 方法
  2. NSBundle 的 loadNibNamed:owner:options: 方法。

谁能解释这两者之间的区别,什么时候使用一个比另一个更合适,在什么情况下使用?

例如,如果我在 tableView:viewForHeaderInSection: 方法中从 nib 文件加载自定义表格部分标题 View ,我会使用哪一个?

或者,如果我从 nib 文件加载自定义表格 View 单元格,我会使用哪个?

最佳答案

NSBundle 的方法是用于解压 NIB 的通用 API。他们执行实际工作(与 NSNib 一起)。

另一方面,

UIViewControllerinitWithNibName:bundle: 是一种初始化 View Controller 的方法,该 View Controller (可能)从 nib 加载其 View 。该方法本身并不加载 Nib ,而只是记下名称。 Controller 在请求 View 时延迟加载 Nib 。

我不知道 UIView 中有任何 nib 加载。

关于iphone - initWithNibName VS NSBundle 的 loadNibNamed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1704166/

相关文章:

iphone - 将文件从 iphone 应用程序发送到本地服务器?

ios - MPMoviePlayerViewController 不播放

objective-c - NSRunLoop 消耗大量 CPU 和内存

objective-c - 为什么标准循环失败时快速枚举有效?

iphone - iOS 应用程序的 Twitter 集成

ios - 类似于 iMessage 的 Split View Controller 中的弹出 View Controller ?

ios - 根据 subview 的宽高比使父 View 的高度灵活

ios - 调整包含 UITextView 的 UICollectionViewCell 以适应 contentSize

ios - 自定义 iOS 框架中的资源

iphone - UIImage imageNamed : does not find image within blue referenced Xcode-folder