У меня есть контроллер представления, в котором я представляю другой контроллер представления с переходом типа «шоу». Я хочу разрешить представление нескольких копий представления, а затем, когда контроллер представления представления закрыт, отклонить любое из представлений, представленных сегментом представления, которые все еще открыты. Если я использую всплывающее окно, то все предыдущее существующее представление отклоняется, и это не то действие, которое я ищу. Есть ли способ сделать это?
Mac OSX Отклонить контроллер нескольких представлений, представленный Show Segue
Ответы (2)
Это решение, которое я придумал. В основном захватите массив контроллеров представления в методе prepareforsegue, затем в методе viewwilldisappear выполните итерацию по массиву и закройте окна, связанные с контроллерами представления.
готовиться
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()
}
}
person
svjim
schedule
14.09.2018
Это единственное решение, которое работает для macos. Удивительный!
- person Houman; 13.02.2020
Я не совсем понимаю ваш вопрос, но, возможно, вы могли бы использовать вспомогательный контроллер представления внутри фактического контроллера представления.
person
Toby Clark
schedule
13.09.2018
Я хочу знать, как отклонить несколько представлений, созданных с помощью перехода шоу из представления представления в методе IBAction или viewwilldisappear для Mac OSX. Представление A создает несколько копий представления B. Как мне закрыть все существующие представления B из представления A?
- person svjim; 14.09.2018
Привет, извините, я не смог помочь, так как я не знаком с кодированием для Mac OS X. К сожалению, я не знаю, как еще вы могли бы это сделать ... Может быть, попробуйте использовать документацию Apple?
- person Toby Clark; 15.09.2018