导航栏未显示在iOS Web视图上

时间:2015-02-25 00:14:59

标签: ios uiwebview navigation

当用户单击非我的应用程序按钮时,它将加载包含Web视图的另一个视图。但是,导航未显示在Web视图上。有什么建议吗?

以下是我用于在网络视图中加载的代码:

- (IBAction)visiteSite:(id)sender {  
    WebViewController *hospitalSite = [self.storyboard instantiateViewControllerWithIdentifier:@"hospitalSite"];
    hospitalSite.hospitalWebURL  = self.url;
    [self presentViewController:hospitalSite animated:YES completion:nil];
}

在Web视图中,我使用它来加载实际内容并生成导航栏:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    UIWebView *webView = [[UIWebView alloc] init];
    webView.frame = self.view.frame;
    [webView loadRequest:[NSURLRequest requestWithURL: self.hospitalWebURL]];
    [webView setScalesPageToFit:YES];
    [[self view] addSubview:webView];
    webView.clipsToBounds =YES;
    webView.frame =  CGRectMake(0,64,webView.frame.size.width,webView.frame.size.height-64);

    self.navigationController.navigationBar.alpha = 0.8f;
}

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

    self.window = [[UIWindow alloc] initWithFrame:
                   [[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[UIViewController alloc]
                           initWithNibName:@"hospitalSite" bundle:nil];

    UINavigationController *navController = [[UINavigationController alloc]
                                             initWithRootViewController:self.viewController];
    //Navigation controller init with ViewController as root
    self.window.rootViewController = navController;
    [self.window makeKeyAndVisible];
    return YES;
}

网站在网页视图中加载,但我在顶部而不是导航栏上只有一个空白条。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的意思是将控制器显示为模态吗?也许它应该按如下方式推进?:

- (IBAction)visiteSite:(id)sender {  
    WebViewController *hospitalSite = [self.storyboard instantiateViewControllerWithIdentifier:@"hospitalSite"];
    hospitalSite.hospitalWebURL  = self.url;
    [[self navigationController] pushViewController:hospitalSite animated:YES];
}

此外,您可能希望在viewWillAppear或viewDidAppear而不是viewDidLoad中执行与帧相关的代码,以便发生所有视图布局。否则一些帧大小可能是错误的。

相关问题