采取 UIAlertAction 后视图未关闭
View not dismissing after UIAlertAction taken
所以我使用带有 Action Sheet 样式的 UIAlertController 来显示两个选项,一个用于取消操作,另一个用于删除数据。按钮工作正常,删除按钮工作,操作 Sheet 关闭。我的问题是,在后台从云中删除数据后,视图本身不会消失。为什么视图不自行消失?
@IBAction func deleteRecipePressed() {
// Create the alert controller
let actionSheetController: UIAlertController = UIAlertController(title: "Delete Recipe?", message: "Are you positive you want to delete this recipe? This action can not be undone!", preferredStyle: .ActionSheet)
// Create and add the cancel action
let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {action -> Void in
// Just dismiss the action sheet
})
actionSheetController.addAction(cancelAction)
// Create and add the delete action
let deleteAction: UIAlertAction = UIAlertAction(title: "Delete", style: .Default, handler: {action -> Void in
// Set deleteRecipe to true to flag for deletion
self.deleteRecipe = true
})
actionSheetController.addAction(deleteAction)
// Present the alert
self.presentViewController(actionSheetController, animated: true, completion: nil)
// If flagged for deletion, delete the recipe and dismiss the view
if (deleteRecipe == true) {
recipeObject.deleteInBackground()
self.dismissViewControllerAnimated(true, completion: nil)
}
}
此代码 -
// If flagged for deletion, delete the recipe and dismiss the view
if (deleteRecipe == true) {
recipeObject.deleteInBackground()
self.dismissViewControllerAnimated(true, completion: nil)
}
显示操作 sheet 后立即执行。即在用户选择任一选项之前。 self.presentViewController(actionSheetController, animated: true, completion: nil)
不阻塞当前线程。
您需要删除项目并在 delete
选项的处理程序中关闭视图 -
let deleteAction: UIAlertAction = UIAlertAction(title: "Delete", style: .Default, handler: {action -> Void in
recipeObject.deleteInBackground()
self.dismissViewControllerAnimated(true, completion: nil)
})
所以我使用带有 Action Sheet 样式的 UIAlertController 来显示两个选项,一个用于取消操作,另一个用于删除数据。按钮工作正常,删除按钮工作,操作 Sheet 关闭。我的问题是,在后台从云中删除数据后,视图本身不会消失。为什么视图不自行消失?
@IBAction func deleteRecipePressed() {
// Create the alert controller
let actionSheetController: UIAlertController = UIAlertController(title: "Delete Recipe?", message: "Are you positive you want to delete this recipe? This action can not be undone!", preferredStyle: .ActionSheet)
// Create and add the cancel action
let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {action -> Void in
// Just dismiss the action sheet
})
actionSheetController.addAction(cancelAction)
// Create and add the delete action
let deleteAction: UIAlertAction = UIAlertAction(title: "Delete", style: .Default, handler: {action -> Void in
// Set deleteRecipe to true to flag for deletion
self.deleteRecipe = true
})
actionSheetController.addAction(deleteAction)
// Present the alert
self.presentViewController(actionSheetController, animated: true, completion: nil)
// If flagged for deletion, delete the recipe and dismiss the view
if (deleteRecipe == true) {
recipeObject.deleteInBackground()
self.dismissViewControllerAnimated(true, completion: nil)
}
}
此代码 -
// If flagged for deletion, delete the recipe and dismiss the view
if (deleteRecipe == true) {
recipeObject.deleteInBackground()
self.dismissViewControllerAnimated(true, completion: nil)
}
显示操作 sheet 后立即执行。即在用户选择任一选项之前。 self.presentViewController(actionSheetController, animated: true, completion: nil)
不阻塞当前线程。
您需要删除项目并在 delete
选项的处理程序中关闭视图 -
let deleteAction: UIAlertAction = UIAlertAction(title: "Delete", style: .Default, handler: {action -> Void in
recipeObject.deleteInBackground()
self.dismissViewControllerAnimated(true, completion: nil)
})