Установить индекс сегментированного элемента управления на основе segue - PullRequest
0 голосов
/ 06 декабря 2018

Я собираюсь из одного контроллера в другой, используя несколько различных кнопок и сегментов.Я хочу, чтобы мой сегментированный элемент управления начинался с указанного индекса в зависимости от используемого перехода.Я попытался выполнить приведенный ниже код, но получил сообщение об ошибке при запуске приложения.

Код:

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 голосов
/ 06 декабря 2018

Вы можете просто передать единственный индекс в переменную, например:

detailView.activeIndex = 1

А в следующем контроллере представления вы можете просто установить индекс сегмента в ViewDidLoad ().

Примечание:Это сбой в вашем заданном вопросе, потому что в этот момент контроллер сегмента равен нулю.

0 голосов
/ 06 декабря 2018

Используя комментарий от M Abubaker Majeed Я заменил:

detailView.listSeg.selectedSegmentIndex = 1

на:

detailView.segIndex = 1

Затем поместил это в контроллер сегментированного представления:

var segIndex = 0

override func viewDidLoad() {
    super.viewDidLoad()

listSeg.selectedSegmentIndex = segIndex

}
...