导航栏未显示

San*_*Lee 5 objective-c uinavigationcontroller navigationbar ios

在这里,我有2个意见:

  • 欢迎VC
  • WebViewVC

首先,AppDelegate通过以下代码调用WelcomeVC:

- (void)presentWelcomeViewController 
    WelcomeViewController *welcomeViewController = [[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil];

    welcomeViewController.title = @"Welcome to My App";

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:welcomeViewController];
    navController.navigationBarHidden = YES;

    self.viewController = navController;
    self.window.rootViewController = self.viewController;
}
Run Code Online (Sandbox Code Playgroud)

因此,在WelcomeVC中,导航栏不显示为navController.navigationBarHidden = YES;。在WelcomeVC中,有一个按钮来调用WebViewVC,如下所示:

- (IBAction)termsPressed:(id)sender {
    WebViewController *webViewController = [[WebViewController alloc] initWithNibName:nil bundle:nil];
    NSLog(@"Terms of Use");
    webViewController.urlPassed = @"http://.../term.html";
    webViewController.title = NSLocalizedString(@"Terms of Use", nil);
    [webViewController.navigationController setNavigationBarHidden:NO animated:NO];
    [self.navigationController presentViewController:webViewController animated:YES completion:^{}];    
}
Run Code Online (Sandbox Code Playgroud)

当按下此按钮时,我希望它调用WebViewVC并显示导航栏,[webViewController.navigationController setNavigationBarHidden:NO animated:NO];但我发现WebViewVC的显示没有导航栏。我还在WebViewVC中包含viewDidLoad,如下所示:

- (void)viewDidLoad {
    [super viewDidLoad];

    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    if(screenSize.height == 480)
    {
        webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    }
    else if(screenSize.height == 568)
    {
        webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
    }

    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlPassed]]];
    [self.view addSubview:webView];
}
Run Code Online (Sandbox Code Playgroud)

有人能帮我指导我在哪里丢失或做错吗?这将不胜感激。提前致谢!

San*_*Lee 5

在这里,我通过更改WelcomeVC中按钮的代码找到了一个解决方案:

- (IBAction)termsPressed:(id)sender {
    WebViewController *webViewController = [[WebViewController alloc] initWithNibName:nil bundle:nil];
    NSLog(@"Terms of Use");
    webViewController.urlPassed = @"http://.../term.html";

    UINavigationController *webViewNavController =[[UINavigationController alloc] initWithRootViewController:webViewController];

    webViewNavController.navigationBarHidden = NO;

    webViewNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentViewController:webViewNavController animated:YES completion:nil];

}
Run Code Online (Sandbox Code Playgroud)