导航栏在 UIPageController 下无法正常工作?

Posted

技术标签:

【中文标题】导航栏在 UIPageController 下无法正常工作?【英文标题】:Navigation bar not working properly under UIPageController? 【发布时间】:2017-01-20 10:33:21 【问题描述】:

我正在尝试在我的应用程序中实现分页。 为此,我创建了一个 UIPageViewController 并在 UIPageViewController 下添加了多个视图控制器。

为了在 UIPageViewController 中添加控制器,我使用了以下代码。

let page1: SPWalkController! = self.storyboard!.instantiateViewController(withIdentifier: "walkid") as! SPWalkController

let page2: SPCreateWalkController! = self.storyboard!.instantiateViewController(withIdentifier: "createwalkid") as! SPCreateWalkController

    page1.isCreateWalk = true
    pages.append(page1)
    pages.append(page2)

   // Create the page container
    pageContainer = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
    pageContainer.delegate = self
    pageContainer.dataSource = self
    pageContainer.setViewControllers([page1], direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil)

    // Add it to the view
    view.addSubview(pageContainer.view)

但问题是在导航栏下添加了控制器视图。 出于这个原因,我取消了容器控制器的属性“在顶部栏下”。所以我的问题解决了。但是当我尝试在该视图控制器上显示另一个视图控制器并再次将其关闭时,它会在导航栏下显示它的子视图控制器。

这是我面临问题的截图

在展示另一个视图控制器之前的第一个屏幕截图

展示了另一个视图控制器

在视图控制器上方解除后,它看起来像以下。

视图位于导航栏下方 我该如何解决这个问题?或者实现 UIPageViewController 有什么指导方针吗?

【问题讨论】:

【参考方案1】:

我自己找到了解决方案。我已经在根视图控制器上展示了视图控制器。所以现在它可以正常工作了。

[self.view.window.rootViewController presentViewController:navigationController animated:YES completion:nil];

【讨论】:

以上是关于导航栏在 UIPageController 下无法正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 导航栏在横向模式下不会缩小

iOS 8 导航栏在 Storyboard 上的第二个 ViewController 中无法访问

导航栏在横向模式下向上移动 - iOS

底部应用栏在使用片段导航时向上/向下滑动(导航架构组件)

iOS:使导航栏在 UITableViewController 中始终可见

Twitter Bootstrap 响应式导航栏在小屏幕上损坏