我一直在阅读framework tutorial,因为我需要通过将实现打包到框架中来分离UI和实现。我正在努力抓住这个概念。
例如,我需要创建一个QR框架,当我点击一个按钮时,它将启动QR页面>抓住文本字符串>将其填充到标签中。
从appCoda中的代码,如何分隔用户界面?如何关于相机屏幕视图(UI / Framework中的代码)?
框架可以包含其他框架吗?
更新 我试图抓住QR,但将框架与QR合并。
我收到错误:
NSBundle </var/mobile/Containers/Bundle/Application/5B97C76C-06E0-4E5A-821C-502477239962/UIControlDevApp.app/RWUIControls.bundle> (not yet loaded)
在这一行
NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"RWUIControls" withExtension:@"bundle"]];
我已将我的源代码包含在here中。
答案 0 :(得分:2)
坚持并继续阅读教程。它们非常丰富,需要付出一些努力。框架是伟大的,值得努力。特别是对于像你一次又一次使用的扫描仪这样的东西。
是的框架可以包含其他框架,他们也可以......
创建框架时,最终会得到两个输出文件。框架本身以及包含您的资源的包(这是故事板和图像文件。)
您需要将这两者添加到要使用它们的项目中。
首先通过引用您创建的任何初始化程序来初始化框架实例,并提供包名称以便它可以找到资源。
在您的框架中,您可以使用委托来返回已解码的字符串。在主应用程序(刚刚初始化的应用程序)中注册您的类实例,以接收来自框架的委托消息。
最后将视图控制器从框架推入堆栈,以便在主应用程序中显示。
self.qrScanner = [[QRScanner alloc] initWithBundleName:@"QRSCanner.bundle" navigationControllerRequired:NO];
self.qrScanner.delegate = self;
if ([self.delegate respondsToSelector:@selector(pushCustomViewController:)])
{
[self.delegate pushCustomViewController:self.qrScanner.qrScannerMainViewController];
}
这是这三个步骤的简短代码示例。假设您已经创建了框架和捆绑包,这将允许您从主应用程序中引用它们。