iOS方向问题

时间:2013-01-16 09:28:47

标签: ios objective-c uiwebview orientation

我有一个简单的网络应用程序,我使用native来构建。

我的应用程序包含MainWindow.xlb,其中填充了Native View Controller。

在Native View Controller.m中,我有以下代码:

http://pastebin.com/xXFc0JCW

看起来很乱,要复制并粘贴在这里。

我似乎无法理解我哪里出错了,为什么我的应用程序/ UIWebView始终保持纵向。

我是iOS开发的新手。

完整源代码:https://www.dropbox.com/s/i9woti5ptecr9n4/Native.zip

2 个答案:

答案 0 :(得分:2)

坦率地说,我在你的代码片段中没有看到任何问题。但是,最近有一个变化,用iOS6引入。如果我没有太多错误,那么对于使用当前SDK构建的应用程序,将不再调用shouldRotateToInterfaceOrientation。而不是你在info.plist中定义支持的接口方向,并可能通过覆盖supportInterfaceOirentations方法覆盖视图控制器中的那个设置,它返回一个整数的位掩码(如何现代...... :)

来自文档:

  

处理视图轮换在iOS 6中,您的应用程序支持该界面   应用程序的Info.plist文件中定义的方向。视图控制器   可以覆盖supportedInterfaceOrientations方法来限制   支持的方向列表。通常,系统会调用此方法   方法仅在窗口的根视图控制器或视图上   控制器呈现以填满整个屏幕;子视图控制器   使用父视图为其提供的窗口部分   控制器并不再直接参与决策   支持什么旋转。应用程序的交集   方向掩码和视图控制器的方向掩码用于   确定视图控制器可以旋转到哪个方向。

如果我错了,请纠正我。

答案 1 :(得分:1)

现在可行:

NativeAppDelegate.m

#import "NativeAppDelegate.h"
#import "NativeViewController.h"

@implementation NativeAppDelegate

@synthesize window;
@synthesize viewController;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after app launch    

    [self.window setRootViewController:viewController];

    return YES;
}


- (void)dealloc {
    [viewController release];
    [window release];
    [super dealloc];
}

@end

NativeViewController.m

#import "NativeViewController.h"

@implementation NativeViewController

@synthesize webView;


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"login" ofType:@"html"];
    NSData *htmlData = [NSData dataWithContentsOfFile:filePath];


    if (htmlData) {
        NSBundle *bundle = [NSBundle mainBundle]; 
        NSString *path = [bundle bundlePath];
        NSString *fullPath = [NSBundle pathForResource:@"login" ofType:@"html" inDirectory:path];
        [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]];
    }
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [webView release];
    [super dealloc];
}

@end

我还在InterfaceBuilder的WebView中取消选中ScaleToFill,否则你必须滚动页面才能看到你的hello世界。

我删除了方向的方法,并将Window的RootviewController设置为ViewController。你的窗口没有RootVieController。