ZBarReaderViewController读卡器视图更改iOS6&;的方向;即使通过_reader.supportedOrientationsMask对其进行了限制,iOS7也仍然存在

ZBarReaderViewController读卡器视图更改iOS6&;的方向;即使通过_reader.supportedOrientationsMask对其进行了限制,iOS7也仍然存在,ios,iphone,objective-c,uiinterfaceorientation,zbar-sdk,Ios,Iphone,Objective C,Uiinterfaceorientation,Zbar Sdk,我使用ZBARDK进行二维码扫描功能。我只想在肖像模式下使用它。根据文档,我使用以下代码行进行设置: _reader.supportedOrientationMask=zBaroOrientationMask(UIInterfaceOrientationGrait) 正如预期的那样,它可以很好地与iOS 5配合使用,但使用相同的代码,该视图会改变iOS 6和iOS 7的方向。supportedOrientationsMask是否仅适用于

我使用ZBARDK进行二维码扫描功能。我只想在肖像模式下使用它。根据文档,我使用以下代码行进行设置:

_reader.supportedOrientationMask=zBaroOrientationMask(UIInterfaceOrientationGrait)

正如预期的那样,它可以很好地与iOS 5配合使用,但使用相同的代码,该视图会改变iOS 6和iOS 7的方向。supportedOrientationsMask是否仅适用于 以下是有关代码的更多详细信息:

if(_reader) // first check `_reader` is created or not?
{
    [_reader.readerView stop]; // then stop continue scanning stream of "self.ZBarReaderVC"
    for(UIView *subViews in _reader.view.subviews) // remove all subviews
        [subViews removeFromSuperview];
    [_reader.view removeFromSuperview];
    _reader.view = nil;
}

_reader = [ZBarReaderViewController new];
_reader.readerDelegate = self;

_reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);

ZBarImageScanner *scanner = _reader.scanner;

// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: ZBAR_I25
               config: ZBAR_CFG_ENABLE
                   to: 0];

[_reader.view setFrame:CGRectMake(0, _topbar.frame.size.height, self.view.bounds.size.width, self.view.bounds.size.height-_topbar.frame.size.height)];

_reader.cameraOverlayView = [self CommomOverlay];

_reader.showsZBarControls=NO;

// present and release the controller
[self presentModalViewController: _reader
                        animated: NO];

如果需要更多详细信息,请告诉我。

我喜欢这样做,并且正在为所有iOS版本工作:

步骤1:设置设备方向

步骤2:将此代码添加到实现(.m)文件中


终于找到了解决办法。 问题是这样的: ZbarViewController*读卡器是从我当前的视图控制器提供的,它的纵向支持属性不知何故无法工作

_reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);
为了解决这个问题,我创建了TBZbarViewController这个新类,它继承了ZbarViewController类,并放置了下面的方法

-(BOOL)shouldAutorotate{
return NO;
}

然后我使用TBZbarViewController*阅读器从我的控制器中演示,解决了这个问题,并且它只在需要时在纵向模式下工作


谢谢。

嘿,它在肖像模式下工作吗?横向模式有什么问题?我不希望屏幕在横向模式下旋转,只保留纵向。对于iOS 5,但我更改了设备方向,它只保留纵向。只是iOS6和iOS7允许摄像头屏幕(_reader显示在view controller上)改变横向方向,这是个问题,不应该发生。谢谢Ajay,但这里的问题是我的应用程序是通用应用程序,我已经做了与上面提到的相同的事情。因此,所有视图控制器都可以在纵向模式下正常工作,但当我从视图控制器中呈现ZBarReaderViewController*读卡器时,相机读卡器打开,这会改变方向,我只想将其阻止为纵向。我没有权限查看ZBarReaderViewController.m文件以进行任何更改。但奇怪的是,底线不起作用_reader.supportedOrientationMask=zBaroOrientationMask(UIInterfaceOrientationGrait);对此有什么见解吗?
-(BOOL)shouldAutorotate{
return NO;