我有一个简单的网络应用程序,我使用native来构建。
我的应用程序包含MainWindow.xlb,其中填充了Native View Controller。
在Native View Controller.m中,我有以下代码:
看起来很乱,要复制并粘贴在这里。
我似乎无法理解我哪里出错了,为什么我的应用程序/ UIWebView始终保持纵向。
我是iOS开发的新手。
答案 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。