带有 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 如果我理解正确,您应该调整UIWebView
的contentOffset
,使其不在导航栏“下方”。 ***.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 委托以允许“返回”,并带有漂亮的动画