swift - Mac OSX 关闭 Show Segue 提出的多视图控制器
问题描述
我有一个视图控制器,我在其中呈现另一个带有“显示”类型 segue 的视图控制器。我想允许呈现视图的多个副本,然后当呈现视图控制器关闭时,关闭显示 segue 呈现的任何仍处于打开状态的视图。如果我使用弹出框,那么任何先前存在的视图都会被忽略,这不是我想要的操作。有没有办法做到这一点?
解决方案
这是我想出的解决方案。基本上在 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)
}
}
视图将消失()
override func viewWillDisappear() {
for segments:NSViewController in segmentsArray!{
segments.view.window?.close()
}
}
推荐阅读
- javascript - 无法使用 RN 中的对象数组更新状态
- python - 在 sphinx-apidoc 生成的文件中包含 __main__.py
- reactjs - React 反复运行函数,但我没有调用它
- image - 第 11 张图像永远无法被读者识别
- matrix - 平面上四元数的胫骨角,欧拉角
- php - 查询 - 从字段结果中排除前缀
- javascript - 图像高度超过带有附加元素的容器
- oauth-2.0 - 身份服务器 4 和 OAuth2
- material-ui - DatePicker (material-ui-picker) onChange 无法将值传递给 redux-form onChange 事件
- android - Oreo:当我使用 NotificationManager.IMPORTANCE_LOW 时,通知不会出现在状态栏中