OGeek|极客世界-中国程序员成长平台

标题: iOS 框架概念 : QR Code Scanning [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 13:59
标题: iOS 框架概念 : QR Code Scanning

我一直在阅读 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-推荐答案


坚持下去并继续重新阅读教程。它们非常多肉,需要一些努力。框架很棒,值得付出努力。尤其是像扫描仪这样你会反复使用的东西。

是的,框架可以包含其他框架,它们也可以包含......

当您创建框架时,您最终会得到两个输出文件。框架本身以及包含您的资源的包(这是 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4