从几个不同的 UIViewControllers 的 NIB 文件加载视图

发布于 2024-09-15 02:47:06 字数 367 浏览 5 评论 0原文

我已经使用此 site

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

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

I have been loading view from Nib files successfully using the approach found on this site

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

The problem is that, because we have to set the File Owner, this nib file becomes "attached" to this view controller. This view is subclass of UITableViewCell and I wanted to load this nib file from several different vc's.
Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烂人 2024-09-22 02:47:06

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

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

A nib is just a template, you can load it over and over again.

If using iOS4, you might want do look at UINib which gives improved performance for repeated nib loading.

披肩女神 2024-09-22 02:47:06

我将提供两个选项:

  • 使用单个 @property(非原子,保留)IBOutlet id mainObject; 和一个名为 loadNibNamed:bundle: 的方法创建一个 NibLoader 类。然后,执行 MyView * v = [[NibLoader loadNibNamed:"MyView" bundle:nil] mainObject];。 (GCC 4.0 属性访问错误意味着 [...].mainObject 将调用 [...] 两次;已在 4.2 中修复。)
  • 创建具有 @property 的 @protocol MyNibOwner (非原子,保留)IBOutlet MyView * myView;,并将文件的所有者类更改为idNSObject

I'll present two options:

  • Create a class NibLoader with a single @property (nonatomic, retain) IBOutlet id mainObject; and a method called loadNibNamed:bundle:). Then, do MyView * v = [[NibLoader loadNibNamed:"MyView" bundle:nil] mainObject];. (A GCC 4.0 property access bug meant that [...].mainObject would call [...] twice; it's been fixed in 4.2.)
  • Create @protocol MyNibOwner which has @property (nonatomic, retain) IBOutlet MyView * myView;, and change the file's owner class to id<MyNibLoader> or NSObject<MyNibLoader>.
痴者 2024-09-22 02:47:06

迂腐地说,笔尖可能应该有一个控制器。我可能会做的是创建一个新的 UIViewController 子类来控制您的笔尖中的内容,然后每当您需要笔尖中的内容时,创建这些视图控制器之一并询问 它用于内容,而不是直接加载笔尖。

Pedantically, a nib should probably have a single controller. What I would probably do is create a new UIViewController subclass that controls the stuff in this nib of yours, and then whenever you want the stuff in the nib, create one of these view controllers and ask it for the stuff, instead of loading the nib directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文