首页 > 解决方案 > 在 Xamarin.ios 中显示其他视图

问题描述

我正在创建一个 UIViewController 上面有动画,我希望它在“加载”或更改视图时显示。有没有办法让我可以在他们执行业务逻辑时在其他视图之上显示该视图,并且当他们完成调用各自的 ViewDidLoad 函数时,调用“隐藏”这个外观视图?

标签: xamarin.ios

解决方案


我认为您想显示具有自己的自定义动画的加载叠加层,并且您想在任何ViewViewController. 如果我的理解是正确的,那么您可以通过以下方式实现:

假设loadingOverlay是您的动画视图实例。为此分配一些独特Tag的:

loadingOverlay.Tag = 1678;

这可以是从UIWindow任何 ViewController 中的所有其他视图唯一标识您的加载覆盖视图的任何数字。

节目:

UIWindow myKeyWindow = UIApplication.SharedApplication.KeyWindow;
myKeyWindow.AddSubView(loadingOverlay);

隐藏:

var loadingOverlay = myKeyWindow.ViewWithTag(1678);
//Remove completely
loadingOverlay?.RemoveFromSuperView();
//OR
//Simply hide it
loadingOverlay?.Hidden = true;

注意:如果要使用Hidden属性,则必须确保UIWindow仅将此视图添加一次。

所以,理想情况下,任何你想在任何东西上显示的东西,都应该进入KeyWindow (UiWindow)

希望这可以帮助!!


推荐阅读