【问题标题】:Unable Correctly to Add Navigation Buttons Using UIPageViewController for iOS使用 iOS 的 UIPageViewController 无法正确添加导航按钮
【发布时间】:2015-12-01 12:51:33
【问题描述】:

对于我的项目,UIPageViewController 可能是一个不错的选择,因此,我从 XCode 6.4 提供的模板开始新项目。我使用了模板:Page-Based Application,它已经有了 UIPageViewController 的基本实现。滚动页面的机会很好,但是,我也想添加导航栏。阅读有关该主题的文章后,我尝试将 DataViewController 嵌入 NavigationController(编辑器>嵌入),然后使用 Interface Builder 中的情节提要添加导航栏按钮。但是,当我编译应用程序时,我看不到该按钮。此外,当您在导航栏按钮应位于的位置按下时,看起来返回导航适用于页面,但按钮不可见。后来我发现后退导航不仅适用于该位置,而且适用于视图的所有左边距。这似乎是一个错误。

1.如何使导航栏后退按钮可见?

2.当导航对按下所有边距而不是按钮的位置做出反应时,如何消除这种错误行为?

【问题讨论】:

  • 广告 1:在您的故事板中,您是否将指向 UIPageViewController(初始视图控制器)的箭头移动到现在指向导航控制器?或者,您可以在导航控制器的检查器中检查“初始视图控制器”。编辑:从头开始,如果您选择“嵌入”,这将自动发生,没关系...
  • 如果我将初始点移动到导航控制器,那么 UIPageViewController 不起作用,所以,我没有。初始点是根控制器。
  • 这就是您看不到导航栏的原因。导航控制器没有被使用/加载,但根控制器直接加载。如果您想要导航控制器,则必须将其设置为初始视图控制器(并将 RootViewController 嵌入其中)。
  • 但我想浏览页面,而不是通过根控制器项目。当我把初始点放在 RootViewController 上时,我得到的是 RootViewController 的导航栏,而不是 DataViewController(页面),这是不同的。
  • 我实际上回答了你的两个问题。

标签: ios xcode uibutton uinavigationbar uipageviewcontroller


【解决方案1】:

如果你想让导航控制器显示出来,你需要改变:

let startingViewController: DataViewController = self.modelController.viewControllerAtIndex(0, storyboard: self.storyboard!)!

因此,startingViewController 是您的 dataViewController 嵌入的导航控制器。您可以通过更改导航控制器的情节提要 ID 并说以下内容来做到这一点:

let startingViewController: UIViewController = (self.storyboard?.instantiateViewControllerWithIdentifier("NavController"))!

但是,这会破坏模板,因为其余代码认为起始视图控制器是 DataViewController,因此您需要更改它。

“错误行为”是当 transitionStyle 设置为 UIPageViewControllerTransitionStylePageCurl 时的标准页面控制器导航机制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 2023-04-01
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多