【问题标题】:Set segmented control's index based on segue根据segue设置分段控件的索引
【发布时间】:2018-12-07 02:47:08
【问题描述】:

我将使用几个不同的 uibuttons 和 segues 从一个控制器到另一个控制器。我想根据所使用的 segue 将我的分段控件设置为从指定的索引开始。我尝试了下面的代码,但在运行应用程序时收到错误。

代码:

if segue.identifier == "watchedSegue" {
        if let detailView = segue.destination as? ListView {
            detailView.watchList = watchList
            detailView.watchedList = watchedList
            detailView.listSeg.selectedSegmentIndex = 1 //Error: Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
        }
    }

为什么我在运行应用程序时收到此错误消息?基于segue设置默认索引的首选方式是什么?

【问题讨论】:

  • 您可以将选定的索引值分配给目标文件夹中声明的 int 属性,以准备 segue,因为该点的段为 nil,然后您可以在 viewwillApear 方法中将该值分配给段

标签: ios swift segue uisegmentedcontrol


【解决方案1】:

使用来自M Abubaker Majeed的评论我替换了:

detailView.listSeg.selectedSegmentIndex = 1

与:

detailView.segIndex = 1

然后将其放入分段视图控制器中:

var segIndex = 0

override func viewDidLoad() {
    super.viewDidLoad()

listSeg.selectedSegmentIndex = segIndex

}

【讨论】:

    【解决方案2】:

    您可以将唯一的索引传递给一个变量,例如:

    detailView.activeIndex = 1
    

    在下一个视图控制器中,您可以简单地在 ViewDidLoad() 中设置段索引。

    注意:它在您给定的问题中崩溃,因为此时段控制器为零。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2020-06-23
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多