我想在我的应用的整个内容上方显示/动画UIView。以下方法有效,但将所有内容附加到窗口并不是一个好主意。
[[[[UIApplication sharedApplication] delegate] window] addSubview:view]
什么是好的选择?
答案 0 :(得分:1)
我认为您可以尝试使用visibleViewController方法来获取顶级viewController
//Try this to get the top viewController
UIViewController *vc = [app.rootViewController visibleViewController];
// After getting the top viewController, and then add your subview to it
[vc addSubView:view];
// and try bringing this view to the top
[vc bringSubViewTo....(fogot~):view];
看看它是否有帮助:)
答案 1 :(得分:0)
我认为这种方法是正确的,你需要将它附加到窗口,因为你可能不知道视图层次结构是什么。
您可以做些什么来整理代码,将该逻辑封装到可通过AppDelegate
或其他方式访问的某些方法中:
- (void)addAlwaysVisibleView:(UIView *)topmostView;
- (void)removeAlwaysVisibleView;
然后AppDelegate
可以保持状态,并知道是否已经附加了“始终可见”视图,以便在需要时保持秩序并进行一些大扫除。