如何在Swift的视图层次结构中添加视图?

时间:2016-05-08 08:44:15

标签: ios swift uiview uiwindow

我一直在用这个:

UIApplication.sharedApplication().keyWindow?.rootViewController!.view.addSubview(self.customView)

在app中的视图层次结构中的所有视图上添加模态视图。

但这给了我一个问题。它有时会按预期添加子视图,但有时它不起作用。 在什么情况下这不会起作用,在UIAlertView等视图层次结构中添加模态视图的最佳方法是什么。

1 个答案:

答案 0 :(得分:4)

根据发生的情况,一次可以有多个UIWindow - 例如,如果出现系统警报,您将有两个单独的窗口(一个用于视图控制器,一个用于警报本身)。登记/> 可以对系统键盘进行类似的示例。如果键盘有焦点,那将是你的keyWindow。

确保在所有窗口之上添加子视图的方法可以是:UIApplication.sharedApplication().delegate?.window

我也看到有人使用应用程序委托:public class ArrayCheck { /** * Tests all elements of the given array, if they are divisible by the given * divisor. * * @param arr * array to be tested * @param divisor * number by which all elements of the given array should be * divisible * @return true if all elements are divisible by divisor */ public boolean allDivisibleBy(ArrayList<Integer> arr, int divisor) { // check if number is dividable or if number is 0 for (int i = 0; i < arr.size(); i++) { if (arr.get(i) != 0) { if (divisor == 0) return false; else if (arr.get(i) % divisor != 0) return false; } } return true; } }