根据segue

时间:2018-12-06 18:32:56

标签: ios swift segue uisegmentedcontrol

我要使用几个不同的uibutton和segue从一个控制器转移到另一个控制器。我想将分段控件设置为基于所使用的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设置默认索引的首选方法是什么?

2 个答案:

答案 0 :(得分:0)

使用我替换的M Abubaker Majeed中的评论:

detailView.listSeg.selectedSegmentIndex = 1

具有:

detailView.segIndex = 1

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

var segIndex = 0

override func viewDidLoad() {
    super.viewDidLoad()

listSeg.selectedSegmentIndex = segIndex

}

答案 1 :(得分:0)

您可以将唯一的索引传递给像这样的变量:

detailView.activeIndex = 1

然后在下一个视图控制器中,只需在ViewDidLoad()中设置段索引即可。

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