Mac OSX Dismiss контроллер нескольких представлений, представленный Show Segue - PullRequest
0 голосов
/ 13 сентября 2018

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

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Это решение, которое я придумал. В основном захватите массив контроллеров представления в методе prepareforsegue, затем в методе viewwilldisappear выполните итерацию по массиву и закройте окна, связанные с контроллерами представления.

prepareforsegue

    override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
    print("in prepare for seque")

    if (segue.identifier!.rawValue == "viewSegmentsSegue"){
        let viewController = segue.destinationController as! NSViewController
        self.segmentsArray?.append(viewController)
        }

}

viewwilldisappear ()

    override func viewWillDisappear() {
    for segments:NSViewController in segmentsArray!{
        segments.view.window?.close()

    }
}
0 голосов
/ 14 сентября 2018

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

...