根据segue设置段控索引
Set segmented control's index based on segue
我将使用几个不同的 uibutton 和 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 设置默认索引的首选方法是什么?
使用来自 M Abubaker Majeed 的评论我替换了:
detailView.listSeg.selectedSegmentIndex = 1
与:
detailView.segIndex = 1
然后将其放入分段视图控制器中:
var segIndex = 0
override func viewDidLoad() {
super.viewDidLoad()
listSeg.selectedSegmentIndex = segIndex
}
您可以将唯一索引传递给变量,例如:
detailView.activeIndex = 1
而在下一个视图控制器中,您只需在 ViewDidLoad() 中设置段索引即可。
注意:它在你给出的问题中崩溃了,因为此时段控制器为零。
我将使用几个不同的 uibutton 和 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 设置默认索引的首选方法是什么?
使用来自 M Abubaker Majeed 的评论我替换了:
detailView.listSeg.selectedSegmentIndex = 1
与:
detailView.segIndex = 1
然后将其放入分段视图控制器中:
var segIndex = 0
override func viewDidLoad() {
super.viewDidLoad()
listSeg.selectedSegmentIndex = segIndex
}
您可以将唯一索引传递给变量,例如:
detailView.activeIndex = 1
而在下一个视图控制器中,您只需在 ViewDidLoad() 中设置段索引即可。
注意:它在你给出的问题中崩溃了,因为此时段控制器为零。