我创建了一些我已经排序到框架中的代码 - 纯粹是因为我想在其他地方重用这些代码(其他osx应用程序 - 而不是iOS)。
在我的Resources文件夹中,我创建了一个xib文件。在我的根目录中高一级,我有相应的控制器文件。
如果我的客户端应用正在使用故事板 - 我将如何加载此视图?注意我确实设法访问上述控制器上的属性,所以我按照Apple文档和其他地方的描述完成了所有的连接。
提前致谢!
答案 0 :(得分:1)
您必须将资源放在* .bundle中,而不是框架中。 只需创建一个捆绑的新目标。
然后用:
加载笔尖NSString *resourceBundlePath = [[NSBundle mainBundle] pathForResource:@"myBundle" ofType:@"bundle"];
NSBundle *resourceBundle = [NSBundle bundleWithPath:resourceBundlePath];
// load View Controller from that
UIViewController *vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:resourceBundle];
答案 1 :(得分:0)
解决方案:以下是加载xib以在框架中创建视图的示例:
加载xib:
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSString* path = [resourcePath
stringByAppendingPathComponent:@"MyBundle.bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:path];
if(bundle)
{
self.view = [[bundle loadNibNamed:@"MyXibNameWithoutSuffix" owner:nil options:nil] lastObject];
} else {
self.view = [[[NSBundle mainBundle]
loadNibNamed:@"MyXibNameWithoutSuffix" owner:nil options:nil] lastObject];
}
加载图片:
UIImage* image = [UIImage imageNamed:@"MyBundle.bundle/MyImageName"];
if(nil == image) {
image = [UIImage imageNamed:@"MyImageName"];
}
如果您使用的是共足动物,请确保s.resources已 在.podspec文件中设置。
s.resources = "MyBundle.bundle/**/*.{png,jpeg,jpg,storyboard,xib,xcassets,plist}"