将视图添加为应用程序顶部窗口的子视图时,警报视图不可见

时间:2013-10-20 21:01:15

标签: iphone ios objective-c uialertview

我有一种情况,我将我的商店视图添加为顶部窗口的子视图。 这是通过以下代码完成的:

NSArray* windows = [[UIApplication sharedApplication] windows];
int count = [windows count];
UIWindow* topWindow = [windows objectAtIndex:count - 1];
[topWindow addSubview:_storeView];

当我购买产品时,在某些情况下(不确定何时何地),应用内购买提醒,用户需要输入其应用ID凭据并批准交易,我的视图涵盖了对用户可见。 只有当我解雇我的观点时,我才能看到它们并完成购买流程。

如何确保这些警报会显示在所有其他视图之上。为什么它不一致,在某些情况下它对用户是可见的,在某些情况下它不是......

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

为什么要将视图直接添加到窗口?我建议你阅读Apple文档UIViewController编程指南。

问题可能是这行代码:

NSArray* windows = [[UIApplication sharedApplication] windows];
int count = [windows count];
UIWindow* topWindow = [windows objectAtIndex:count - 1];
[topWindow addSubview:_storeView];

您的应用程序的根控制器是什么?你在使用容器控制器(UINavigationControllerUITabBarController,...)。你可以出示你的AppDelegate代码吗?

答案 1 :(得分:0)

找到了解决方案。

而不是使用当前窗口我正在创建一个浮动在其他UI元素(如系统键盘)之上的新窗口。 我正在将其窗口级别属性设置为UIWindowLevelStatusBar以显示上面的状态栏但在uialertviews下面