Как получить доступ к названию выбранной части сегментированного элемента управления из другого класса?

-2

В моем первом контроллере просмотра у меня есть сегментированный элемент управления. Я пытаюсь получить строковое значение заголовка выбранной части сегментированного элемента управления с моего второго контроллера представления. Кто-нибудь знает, как это сделать? Заранее спасибо!

  • 0
    Вы, вероятно, получили отрицательные отзывы, потому что вы не дали ни кода, ни описали то, что вы пробовали. Посмотрите на stackoverflow.com/help/how-to-ask
Теги:
swift4
uisegmentedcontrol

1 ответ

0
Лучший ответ

У вас нет кода, написанного, но я полагаю, что это сценарий addchildviewcontroller и addsubview представления, а не addchildviewcontroller или addsubview. В этом случае есть много способов сделать это, вот два:

1) Сделать глобальную переменную, которая определяет состояние сегментированного элемента управления.

@IBOutlet weak var segContoll: UISegmentedControl!
func back() {
globalvar = segContoll.titleForSegment(at: segContoll.selectedSegmentIndex)
}

2) Составьте протокол, вот что он должен выглядеть:

protocol NotifyDelegate {
    func collectionViewSelectedIndex(indexPath : Int)
}

class CollectionViewForSessions: ... {
    var delegate: NotifyDelegate?
func ... {
//The nextview delegate
    sessionCollection.delegate = self
}
    func ... {
//Instead of inputing a number, customize it to input a string segContoll.titleForSegment(at: segContoll.selectedSegmentIndex)
        delegate?.collectionViewSelectedIndex(indexPath: indexPath.row)
    }
}

class MessagesWithPerson: NotifyDelegate {
    func collectionViewSelectedIndex(indexPath: Int) {
    }
}
  • 0
    Я вполне уверен, что вы должны объявить глобальную переменную, просто объявив переменную вне какого-либо класса, структуры или протокола, а не с помощью 'globalvar'. Кроме того, когда я объявляю глобальную переменную вне моего класса, она выдает сообщение об ошибке «Элемент экземпляра nameOfSegControl нельзя использовать для типа« viewControllerSegControlIsIn ».
  • 0
    Мое оригинальное сообщение должно было быть воспринято как план. Ясно, что вам нужно реализовать это вне вашего класса: var yourString: String! и назначьте его в свой обратный func, где вы отклоните представление: segContoll.titleForSegment(at: segContoll.selectedSegmentIndex)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню