c# - 为什么 PresentViewControllerAsync 不阻塞?
问题描述
代码:
await vc.PresentViewControllerAsync(otherVC, true);
someMethod();
我希望这要等到提出的otherVC
退出。这就是为什么非异步版本的最后一个参数丢失的原因,对吧?因为它应该是someMethod
。但实际上,上面的代码只是显示otherVC
并立即运行someMethod
。
如果它不应该阻止 - 为什么还要有它?为什么不只有PresentViewController
?
解决方案
基于文档(我不使用 Xamarin):
PresentViewControllerAsync
将异步呈现一个视图控制器——意思是,它不会阻塞,并且下一行将在呈现otherVC时执行。
PresentViewController
有一个完成处理程序——意思是, otherVC 将被呈现,然后完成块将运行。(注意,完成块将在 VC 的呈现完成后运行......而不是在呈现的 VC 被关闭后)。
推荐阅读
- python - 使用数据框列中的 groupby 绘制条形图
- firebase - 开发人员可以配置 Firebase 托管的国家/地区限制吗?
- javascript - 谷歌图表 - 日历 - 拉伸到全宽
- javascript - Google Analytics 脚本片段 analytics.js 和 gtag.js 之间的区别
- python-3.x - “如何在 python 中修复 'TweepError: Twitter 错误响应:状态码 = 400' 错误”
- internet-explorer - IE11光标闪烁
- jquery - 如何在php的数据表中选择两个列
- laravel - 使用数组更新 Laravel 雄辩模型
- javascript - 在特定开始和结束 HTML5 视频持续时间后更改视频源
- reactjs - 基于 prop 的动态样式组件标签