设备方向在iOS中没有变化?

时间:2017-04-25 12:29:57

标签: ios objective-c iphone device-orientation ipad-2

我正在使用OS版本为9.3的iPAD 2。我的应用程序尝试更改设备方向,但不会更改。如何在iOS 9.0中更改设备方向。我的问题是当应用程序启动它应该是肖像,不应该自动旋转。单击按钮后,它应将方向更改为LandscapeRight。

对于您的信息,所有方向都在项目.plist文件中检查

我的视图控制器中的代码:

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:YES];    
    [[UIDevice currentDevice] setValue:
     [NSNumber numberWithInteger: UIInterfaceOrientationPortrait]
                                forKey:@"orientation"];   
}

- (BOOL)shouldAutorotate {
    return NO;
}

并点击按钮

-(IBAction)playMyVideo:(MPMediaItem*)item{        
    [[UIDevice currentDevice] setValue:
     [NSNumber numberWithInteger: UIInterfaceOrientationLandscapeRight]
                                forKey:@"orientation"];
}

代码有什么问题?如果没有任何问题,解决方案是什么?

注意:在iPhone中有一个名为Videos的应用程序,他正在处理按钮点击的旋转。它是一个系统应用程序他是怎么做到的。

2 个答案:

答案 0 :(得分:0)

没有官方支持的方式来做你要求的事情。在this question下发布了几个解决方法,但其中大多数都是kludges,可能会在iOS的未来版本中破解(如果还没有),或者会在应用商店提交时拒绝您的应用。 Apple不希望您手动设置方向,因为他们认为这会让用户感到困惑,并且会破坏他们的UI设计指南。

请参阅Apple的Human Interface Guidelines文档以供参考。

答案 1 :(得分:0)

有一种方法,使用2个var webpack = require('karma-webpack'); module.exports = function (config) { config.set({ singleRun: false, watched: true, frameworks: ['jasmine'], browsers: ['Chrome'], files: [ 'tests.webpack.js' ], preprocessors: { 'tests.webpack.js': [ 'webpack', 'sourcemap' ] }, reporters: [ 'dots' ], webpack: { devtool: 'inline-source-map', module: { loaders: [ { test: /\.js$/, loader: 'babel-loader', query: { presets: ['airbnb'] } } ] } }, externals: { 'react/addons': true, 'react/lib/ExecutionEnvironment': true, 'react/lib/ReactContext': true }, browserNoActivityTimeout: 300000, plugins: [ 'karma-webpack', 'karma-jasmine', 'karma-sourcemap-loader', 'karma-chrome-launcher' ], webpackServer: { noInfo: true }, }); }; 个对象......一个有纵向和其他横向方向。这将工作顺利。除了没办法