我一直在阅读 framework tutorial因为我需要通过将实现打包到框架中来分离 UI 和实现。我正在努力捕获这个概念。
例如我需要创建一个二维码框架,当我点击一个按钮时,它将启动二维码页面 > 捕获文本字符串 > 将其填充到标签中。
来自 appCoda 中的代码,如何分离UI?相机屏幕 View (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 中.
Best Answer-推荐答案 strong>
坚持下去并继续重新阅读教程。它们非常多肉,需要一些努力。框架很棒,值得付出努力。尤其是像扫描仪这样你会反复使用的东西。
是的,框架可以包含其他框架,它们也可以包含......
当您创建框架时,您最终会得到两个输出文件。框架本身以及包含您的资源的包(这是 Storyboard和图像文件。)
您需要将这两个都添加到要使用它们的项目中。
首先通过引用您创建的任何初始化程序来初始化您的框架实例,并提供包名称以便它可以找到资源。
在您的框架中,您可以使用委托(delegate)来返回已解码的字符串。在主应用(您刚刚初始化的那个)中注册您的类的实例,以从您的框架接收委托(delegate)消息。
最后将框架中的 View Controller 推送到堆栈上,以便在主应用程序中显示。
self.qrScanner = [[QRScanner alloc] initWithBundleName"QRSCanner.bundle" navigationControllerRequired:NO];
self.qrScanner.delegate = self;
if ([self.delegate respondsToSelectorselector(pushCustomViewController])
{
[self.delegate pushCustomViewController:self.qrScanner.qrScannerMainViewController];
}
这是这三个步骤的简短代码示例。假设您已经创建了框架和 bundle ,这将允许您从主应用程序中引用它们。
关于iOS 框架概念 : QR Code Scanning,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28171079/
|