0

我想在我的应用程序的整个内容上方显示/动画 UIView。以下方法有效,但将所有内容附加到窗口并不是一个好主意。

[[[[UIApplication sharedApplication] delegate] window] addSubview:view]

什么是好的选择?

4

2 回答 2

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];

看看它是否有帮助:)

于 2013-06-26T18:21:13.013 回答
0

我认为该方法是正确的,您确实需要将其附加到窗口,因为您可能不知道视图层次结构是什么。

稍微整理一下代码,您可以做的就是将该逻辑封装到一些可通过AppDelegateor 访问的方法中:

- (void)addAlwaysVisibleView:(UIView *)topmostView;
- (void)removeAlwaysVisibleView;

然后AppDelegate可以保持状态,并知道是否已经附加了“始终可见”的视图,以保持事情井井有条并在需要时进行一些大扫除。

于 2013-06-26T17:40:10.473 回答