【发布时间】:2023-12-22 18:55:01
【问题描述】:
我正在使用 Linea Pro 硬件条码扫描仪开展一个项目。为了开始,我使用了以下答案How do I use the Linea-Pro SDK for IOS?
我的应用由一个导航控制器(包含两个条目的表)和两个连接的视图控制器(每个都使用扫描仪)组成。
我在导航控制器的 viewDidLoad 中连接设备,如下所示:
dtdev=[DTDevices sharedDevice];
[dtdev connect];
在两个视图控制器中,我在 viewDidLoad 方法中注册设备,如下所示:
dtdev=[DTDevices sharedDevice];
[dtdev addDelegate:self];
[super viewDidLoad];
不幸的是,当我单击设备扫描按钮时,两个视图控制器的两个委托方法都被调用,因为它们都注册了。
为了防止这种行为,我想在视图可见时将 viewController 设置为委托,因此我将 [dtdev addDelegate:self]; 放入 viewWillAppear方法并在 viewWillDisappear 方法中放置一个 [dtdev removeDelegate:self];。之后条码扫描器在调用 removeDelegate 后将不再工作,即使再次通过 addDelegate 添加也是如此。
我没有看到另一种方法,只需将两个视图控制器都添加为委托,然后在委托方法中放入这样的代码:“我可见吗”? --> 继续:否则中断; (但这很愚蠢,对吧?)
这是一个错误还是我的想法不正确?
【问题讨论】:
标签: iphone ios objective-c barcode-scanner linea-pro