我一直在使用此site
上找到的方法成功加载Nib文件中的视图[[NSBundle mainBundle] loadNibNamed:@"YourNibName" owner:self options:nil];
问题在于,因为我们必须设置文件所有者,所以此nib文件将“附加”到此视图控制器。这个视图是UITableViewCell
的子类,我想从几个不同的vc加载这个nib文件。
谢谢你的帮助。
答案 0 :(得分:2)
nib只是一个模板,您可以一遍又一遍地加载它。
如果使用iOS4,您可能需要查看UINib,这样可以提高重复nib加载的性能。
答案 1 :(得分:0)
我将提出两个选择:
@property (nonatomic, retain) IBOutlet id mainObject;
和名为loadNibNamed:bundle:
的方法创建一个类NibLoader。然后,做MyView * v = [[NibLoader loadNibNamed:"MyView" bundle:nil] mainObject];
。 (GCC 4.0属性访问错误意味着[...]。mainObject会调用[...]两次;它已在4.2中修复。)@protocol MyNibOwner
@property (nonatomic, retain) IBOutlet MyView * myView;
,并将文件的所有者类更改为id<MyNibLoader>
或NSObject<MyNibLoader>
。答案 2 :(得分:-1)
讽刺的是,笔尖应该只有一个控制器。我可能会做的是创建一个新的UIViewController
子类来控制你的这个nib中的东西,然后每当你想要nib中的东西时,创建其中一个视图控制器并询问 it for stuff,而不是直接加载nib。