【问题标题】:UIWebView inside UIPageViewController with UINavigationBar带有 UINavigationBar 的 UIPageViewController 内的 UIWebView
【发布时间】:2014-08-29 16:12:20
【问题描述】:

我创建了一个项目,在情节提要的UINavigationController 中嵌入了UIPageViewController。 这个 pageController 有 2 个UIViewController,里面有一个UIWebViewController 的实例。问题是 web 视图出现在顶部栏下方。

你有什么办法解决这个问题吗?

注意: 我不想使用self.edgesForExtendedLayout = UIRectEdgeNone; 来解决这个问题,因为我希望我的网络视图在NavigationBar 下可见

这是 PageViewController:

DataViewController *startingViewController = [self.modelController viewControllerAtIndex:0 storyboard:self.storyboard];
NSArray *viewControllers = @[startingViewController];
[self setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
self.dataSource = self.modelController;

这是 DataViewController:

[self.webView loadHTMLString:@"...My Html..." baseURL:nil];
[self.webView setDelegate:self];

ModelController 与 Apple 示例项目相同

这是故事板:

【问题讨论】:

  • 你不是说UIWebView吗?并显示您的代码,您尝试了什么
  • @Ty_ 我更新了代码
  • @Serluca 如果我理解正确,您应该调整UIWebViewcontentOffset,使其不在导航栏“下方”。 stackoverflow.com/questions/19024031/…
  • 设置 contentOffset 不是一个好的解决方案,我想通过 autoLayot 正确解决这个设置

标签: ios objective-c uiwebview uinavigationcontroller uipageviewcontroller


【解决方案1】:

如果您想在导航栏下启动 UIWebView,那么还有一种更简单的方法。

按照以下步骤操作:

  1. 在 Storyboard 中选择您的 ViewController。
  2. 在 Attributes Inspector 中,ViewController “Under Top Bars”中有一个选项,取消选中此选项。

之后,您的视图将从导航栏完成开始。

我想它会解决你的问题..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多