我正在自学Swift(目前正在使用Xcode 7.3),我第一次使用故事板。我正在编写一个基于OS X的应用程序,当用户在数据已经存在时尝试加载数据时,我想显示警报。我已经阅读了以下帖子Add completion handler to presentViewControllerAsSheet但是我无法绕过闭包/完成处理程序。我在理论上理解它们,但还不够好写一个。
在上面的线程中,正在返回Struct。我只需要返回一个Int或Bool来指示用户是否想要覆盖数据。
答案 0 :(得分:1)
您不需要创建第二个视图控制器。只需配置并显示NSAlert
对象:
@IBAction func loadData(sender : AnyObject) {
let dataAlreadyExists = true // assume this is always true
if dataAlreadyExists {
let alert = NSAlert()
alert.messageText = "Do you want to reload data?"
alert.addButtonWithTitle("Reload")
alert.addButtonWithTitle("Do not reload")
alert.beginSheetModalForWindow(self.view.window!) { response in
if response == NSAlertFirstButtonReturn {
// reload data
}
}
}
}