【问题标题】:Connecting UISegmentedControl with UIPageViewController将 UISegmentedControl 与 UIPageViewController 连接起来
【发布时间】:2015-11-15 05:46:11
【问题描述】:

我想为我的UIPageViewController 实现一个UISegmentedControl,但我无法添加它,我必须将它添加到我的容器视图中。问题是它找不到两个ViewController´s 并在我按下分段控件时崩溃。

我能否以编程方式添加一个分段控件,因为我无法将其拖放到UIPageViewController。我还希望能够使用分段控件切换视图。

Swift 语言

【问题讨论】:

  • 你希望segmentedcontrol放在哪里?
  • 我希望它位于容器视图上,因此它不会移动,但随后应用程序崩溃,我无法将它放在 pageviewcontroller 上。我只是希望它像导航栏一样保持静止@AndréSlotta
  • 但您希望它位于视图的底部?还是在哪里?
  • 在顶部,导航栏的正下方@AndréSlotta

标签: ios xcode swift


【解决方案1】:

您必须将分段控件添加到包含容器视图的视图中。您无需从 segmentedcontrol 设置任何 segue,而是在代码中进行设置:

@IBAction func segmentedControlValueChanged(sender: UISegmentedControl) {
  if sender.selectedSegmentIndex == 0 {
    let vc = storyboard?.instantiateViewControllerWithIdentifier("RedViewController")
    pageViewController.setViewControllers([vc!], direction: .Reverse, animated: true, completion: nil)
  } else {
    let vc = storyboard?.instantiateViewControllerWithIdentifier("BlueViewController")
    pageViewController.setViewControllers([vc!], direction: .Forward, animated: true, completion: nil)
  }
}

看看我的演示项目:https://www.dropbox.com/sh/sa92iwqmb72dyih/AAByJaLJ_Wk24FMwQcWazPcHa?dl=0

【讨论】:

  • pageViewController.setViewControllers([vc!] 我无法让这条线工作,有什么解释吗?
  • 我在查看了您的示例代码后修复了它:)
  • 另外,当我滑动分段控件时,它不会跟随并更改指示器。这是为什么呢?
  • 如果你希望你必须实现 pageviewcontrollers 数据源,而不是仅仅通过 setViewControllers... 设置 viewcontrollers
  • 这怎么可能?
猜你喜欢
  • 1970-01-01
  • 2017-09-24
  • 2014-08-16
  • 2023-03-29
  • 2020-01-20
  • 2012-03-10
  • 2022-01-19
  • 2013-01-27
  • 2020-10-10
相关资源
最近更新 更多