gpt4 book ai didi

ios - 保持 UIView 从一个 Controller 到另一个 Controller

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:24 26 4
gpt4 key购买 nike

我正在使用 https://github.com/ali-ehsan/GIFProgressHUD作为我的应用程序的加载微调器,但它似乎只附加到一个 View ,所以如果我从登录屏幕加载到主屏幕,在转换过程中,这个进度 HUD 将自动消失。

有没有办法让 View 停留在屏幕之间,有点像事件指示器?

我正在使用 Objective-C 进行开发。

最佳答案

添加(附加)您的进度 View 到应用程序的主窗口,而不是 Controller 的 subview 或在您转换时被删除的 View 。

A - 使用 KVC

id appDelegate = [UIApplication sharedApplication].delegate;
UIWindow *keyWindow = [appDelegate valueForKey:@"window"];

B - 使用 UIApplication 的 keywindow 属性

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];

此属性保存最近发送 makeKeyAndVisible 消息的 UIWindow 对象。

C - 使用 UIApplication 的 windows 属性

UIWindow *keyWindow = [[UIApplication sharedApplication] windows].lastObject;

建议:只需标记您的进度 View ,这样您以后需要删除它时就可以轻松找到它。

更新:现在您有了主窗口(层次结构中最顶层的 View ),您可以添加您喜欢的任何类型的堆栈对象( View 、标签、事件指示器等),就像您添加到任何 UIView.

// Easiest and most readable way to get the key window
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;

UIView *testview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
testview.backgroundColor = [UIColor redColor];
[keyWindow addSubview:testview];

testview.center = keyWindow.center;

更新 2:

如果您以传统UIViewController 转换和演示之外的方式导航,作为最后的手段,您始终可以添加一个新窗口 到堆栈as seen here in this SO post.

如果消失 View 的问题仍然存在,您可能想尝试更改浏览 View / Controller 的方式在 Controller 之间传递引用以允许此“消失” View 存在上。

Another reference regarding this type of navigation.

关于ios - 保持 UIView 从一个 Controller 到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48330331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com