2014-11-22 63 views
0

我试图以编程方式创建并设置View作为根View。我没有使用Storyboard或ARC。以编程方式覆盖loadView并设置rootViewController,没有Storyboard

我试图设置一个UIWebView作为我的ViewController'sView,这是我无法做到的。当我运行下面的代码时,我看到一个空白屏幕的NavigationBar。我试着设置一个常规的UIView作为根View,并将其背景色设置为蓝色,这会加载,所以问题似乎是特定于UIWebView。 我真的很感激,如果有人能指出我做错了什么。谢谢!

这里是我的loadView代码:

// in GmailOAuthViewController.m 
- (void)loadView { 

    CGRect frame = [[UIScreen mainScreen] bounds]; 
    UIWebView *webView = [[[UIWebView alloc] initWithFrame:frame] autorelease]; 

    self.view = webView; 
} 

这里是我的application:didFinishLaunchingWithOptions:代码:

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

    CGRect frame = [[UIScreen mainScreen] bounds]; 
    UIViewController *viewController = [[GmailOAuthViewController alloc] init]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 

    self.window = [[UIWindow alloc] initWithFrame:frame]; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

回答

1

如果分配web视图以查看其他一切都是你赋予self.view ... 不见了 尝试

[self.view addSubview: webView]  

这是代码我只是想和它的作品

CGRect frame = [[UIScreen mainScreen] bounds]; 
    UIViewController *viewController = [[ViewController alloc] init]; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 

    self.window = [[UIWindow alloc] initWithFrame:frame]; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    self.window.rootViewController = navigationController; 
    [self.window makeKeyAndVisible]; 

在ViewController.m

-(void)viewDidAppear:(BOOL)animated{ 
    CGRect frame = self.view.bounds; 
    UIWebView *webView = [[UIWebView alloc] initWithFrame:frame] ; 
    webView.delegate = self; 
    self.view = webView; 

    NSString *thePath = [[NSBundle mainBundle] pathForResource:@"ViewControllerCatalog" ofType:@"pdf"]; 
    if (thePath) { 
     NSData *pdfData = [NSData dataWithContentsOfFile:thePath]; 
     [(UIWebView *)self.view loadData:pdfData MIMEType:@"application/pdf" 
         textEncodingName:@"utf-8" baseURL:nil]; 
    } 

} 

我很抱歉,我告诉你错在先你实际上分配到查看

+0

嗨,为感谢您的响应。如果我进行更改,屏幕永远不会从版权屏幕转换。除了'UIWebView',我没有创建父视图,也没有使用Storyboard。我想将它设置为'View'的根目录并以编程方式显示它。 – Impossibility 2014-11-22 02:01:14

+0

使用UInavigationController * navi ...而不是self.nav ... – 2014-11-22 02:29:51

+0

上面的代码工作,我只是药物与该名称的PDF到Xcode和一切都很好。我猜你的导航控制器属性干扰了现有的属性 – 2014-11-22 02:48:26

相关问题