Ios 斯威夫斯平纳不再工作了

Ios 斯威夫斯平纳不再工作了,ios,swift,Ios,Swift,我一直在寻找一种使用故事板以编程方式设置初始视图控制器的方法。我找到了这个解决方案: 这就像我希望的那样有效,但在使用该主题中提供的快速答案后: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { self.window = UIWindow(frame: UIScreen.mainScreen

我一直在寻找一种使用故事板以编程方式设置初始视图控制器的方法。我找到了这个解决方案:

这就像我希望的那样有效,但在使用该主题中提供的快速答案后:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var exampleViewController: ExampleViewController = mainStoryboard.instantiateViewControllerWithIdentifier("ExampleController") as! ExampleViewController

self.window?.rootViewController = exampleViewController

self.window?.makeKeyAndVisible()

return true
}
当第一次加载视图时,用于工作的框架将不再工作:SwiftLoader

但是,当我第二次加载相同的视图时,SwiftLoader插件确实激活了

我像这样加载SwiftLoader:

SwiftLoader.show(title: "Loading...", animated: true)

我觉得这与上面的代码有关,创建一个UIWindow,而不是以前的故事板(UIView?)所做的任何事情,但我不知道如何解决这个问题

SwiftLoader使用应用程序的键窗口显示。见:

所以,您的问题一定是,当您第一次激活SwiftLoader时,另一个窗口是关键窗口

要检查此项,请检查
UIApplication.sharedApplication().keyWindow
,并将其与
UIApplication.sharedApplication().windows
数组进行比较,以查看应用程序中的所有当前窗口。最前面的
ui窗口
将是此数组的最后一个元素

非关键窗口可能是iOS键盘、警报视图等

我修复了一个类似的问题:


您可能希望更新SwiftLoader以使用类似这样的智能逻辑(移植到Swift),或者允许您手动指定窗口。

SwiftLoader使用应用程序的键窗口显示。见:

所以,您的问题一定是,当您第一次激活SwiftLoader时,另一个窗口是关键窗口

要检查此项,请检查
UIApplication.sharedApplication().keyWindow
,并将其与
UIApplication.sharedApplication().windows
数组进行比较,以查看应用程序中的所有当前窗口。最前面的
ui窗口
将是此数组的最后一个元素

非关键窗口可能是iOS键盘、警报视图等

我修复了一个类似的问题:


您可能希望更新SwiftLoader以使用类似这样的智能逻辑(移植到Swift),或者允许您手动指定窗口。

SwiftLoader使用应用程序的键窗口显示。见:

所以,您的问题一定是,当您第一次激活SwiftLoader时,另一个窗口是关键窗口

要检查此项,请检查
UIApplication.sharedApplication().keyWindow
,并将其与
UIApplication.sharedApplication().windows
数组进行比较,以查看应用程序中的所有当前窗口。最前面的
ui窗口
将是此数组的最后一个元素

非关键窗口可能是iOS键盘、警报视图等

我修复了一个类似的问题:


您可能希望更新SwiftLoader以使用类似这样的智能逻辑(移植到Swift),或者允许您手动指定窗口。

SwiftLoader使用应用程序的键窗口显示。见:

所以,您的问题一定是,当您第一次激活SwiftLoader时,另一个窗口是关键窗口

要检查此项,请检查
UIApplication.sharedApplication().keyWindow
,并将其与
UIApplication.sharedApplication().windows
数组进行比较,以查看应用程序中的所有当前窗口。最前面的
ui窗口
将是此数组的最后一个元素

非关键窗口可能是iOS键盘、警报视图等

我修复了一个类似的问题:


您可能希望更新SwiftLoader以使用类似这样的智能逻辑(移植到Swift),或者允许您手动指定窗口。

在显示指示器视图时,您能否报告问题代码部分?在显示指示器视图时,您能否报告问题代码部分?在显示指示器视图时,您能否报告问题代码部分?您能否报告问题代码部分显示指示器视图时的代码?
    var currentWindow : UIWindow = UIApplication.sharedApplication().keyWindow!

    // […snip…]

    loader.coverView = UIView(frame: currentWindow.bounds)
    loader.coverView?.backgroundColor = UIColor.clearColor()

    if (loader.superview == nil) {
        currentWindow.addSubview(loader.coverView!)
        currentWindow.addSubview(loader)
        loader.start()
    } else {
        loader.coverView?.removeFromSuperview()
    }
    NSEnumerator *frontToBackWindows = [UIApplication.sharedApplication.windows reverseObjectEnumerator];
    for (UIWindow *window in frontToBackWindows){
        BOOL windowOnMainScreen = window.screen == UIScreen.mainScreen;
        BOOL windowIsVisible = !window.hidden && window.alpha > 0;
        BOOL windowLevelNormal = window.windowLevel == UIWindowLevelNormal;

        if (windowOnMainScreen && windowIsVisible && windowLevelNormal) {
            [window addSubview:self.overlayView];
            break;
        }
    }