首先,什么时候执行解除视图的完成块?是在用户看到视图被撤消之后还是之前?
因为我有这段代码用在完成块内的消息进行祝酒,但是在取消该视图后再也看不到祝酒。
self.dismiss(animated: true, completion: {
self.view.makeToast(message: "Employee has been assigned successfully.", duration: 2.0, position: HRToastPositionCenter as AnyObject, title: "Succeeded!")
})
Run Code Online (Sandbox Code Playgroud)
我要的是,当视图完全消失时,用户可以看到吐司吗?
这该怎么做 ?
您可以将事件从显示的控制器委派给父级并在那里进行处理。
在EmployeePickerViewController中(或任何称为模式控制器的地方):
@protocol EmployeePickerDelegate {
func employeeAssigned()
}
class EmployeePickerViewController {
weak delegate: EmployeePickerDelegate!
}
Run Code Online (Sandbox Code Playgroud)
员工分配完成后,只需调用代表的方法即可:
delegate?.employeeAssigned()
Run Code Online (Sandbox Code Playgroud)
在MainViewController中以模态显示时:
employeePicker.delegate = self
present(employeePicker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
在下面的MainViewController中:
extension MainViewController: EmployeePickerDelegate {
func employeeAssigned {
dismiss(animated: true, completion: {
self.view.makeToast(message: "Employee has been assigned successfully.", duration: 2.0, position: HRToastPositionCenter as AnyObject, title: "Succeeded!")
})
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12841 次 |
| 最近记录: |