0

我一直在使用本网站上的方法成功地从 Nib 文件加载视图

[[NSBundle mainBundle] loadNibNamed:@"YourNibName" owner:self options:nil];

问题是,因为我们必须设置文件所有者,所以这个 nib 文件会“附加”到这个视图控制器。这个视图是的子类,UITableViewCell我想从几个不同的 vc 加载这个 nib 文件。谢谢你的帮助。

4

3 回答 3

2

笔尖只是一个模板,您可以一遍又一遍地加载它。

如果使用 iOS4,您可能需要查看 UINib,它可以提高重复 nib 加载的性能。

于 2010-08-19T16:53:58.957 回答
0

我将介绍两个选项:

  • 创建一个类 NibLoader,其中包含一个@property (nonatomic, retain) IBOutlet id mainObject;名为loadNibNamed:bundle:) 的方法。然后,做MyView * v = [[NibLoader loadNibNamed:"MyView" bundle:nil] mainObject];。(一个 GCC 4.0 属性访问错误意味着 [...].mainObject 会调用 [...] 两次;它已在 4.2 中修复。)
  • 创建@protocol MyNibOwnerwhich has @property (nonatomic, retain) IBOutlet MyView * myView;,并将文件的所有者类更改为id<MyNibLoader>NSObject<MyNibLoader>
于 2010-08-19T19:11:12.000 回答
-1

学究式地,笔尖可能应该有一个控制器。我可能会做的是创建一个新的UIViewController子类来控制你的这个笔尖中的东西,然后每当你想要笔尖中的东西时,创建这些视图控制器之一并询问的东西,而不是直接加载笔尖.

于 2010-08-19T16:59:19.940 回答