带有 UINavigationBar 的 UIPageViewController 内的 UIWebView

Posted

技术标签:

【中文标题】带有 UINavigationBar 的 UIPageViewController 内的 UIWebView【英文标题】:UIWebView inside UIPageViewController with UINavigationBar 【发布时间】: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,使其不在导航栏“下方”。 ***.com/questions/19024031/… 设置 contentOffset 不是一个好的解决方案,我想通过 autoLayot 正确解决这个设置 【参考方案1】:

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

按照以下步骤操作:

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

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

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

【讨论】:

以上是关于带有 UINavigationBar 的 UIPageViewController 内的 UIWebView的主要内容,如果未能解决你的问题,请参考以下文章

带有 RECurtainViewController 的 UINavigationBar 外观

带有 UINavigationController 的独立 UINavigationBar 中的后退按钮

带有 UINavigationBar 的 UIPageViewController 内的 UIWebView

获取 UINavigationBar 委托以允许“返回”,并带有漂亮的动画

UINavigationBar 立即消失,而带有动画的 pushViewcontroller 为真

带有搜索图标的 UINavigationBar - 单击时推送模态搜索视图