self.window 在 NativeScript 中

self.window in NativeScript

我有一个 pod 在 applicationDidFinishLaunchingWithOptions 中需要这个...我不知道该怎么做 :/

    // Your UI setup logic (if not using storyboards)
    self.window = ...
    self.window.rootViewController = ...
    [self.window makeKeyAndVisible];

    instance.presentOnboardingUIOnWindowCompletionHandler(self.window, function(args){
      //Complete Callback        
    })

显然 {N} 不使用情节提要,那么我该怎么办?

编辑 好的,这似乎可行,但它有点占据了整个屏幕,并且当 window 命中完成处理程序时应用程序是 DOA。我想我在这里需要做的是找到主要的原始根 window 并使该键可见,但是...?

    var myWindow = new UIWindow();

    myWindow.makeKeyAndVisible();

    instance.presentOnboardingUIOnWindowCompletionHandler(myWindow, function(args){
        resolve({
            window: myWindow,
            args: args    
        });
    });

我认为您需要在 app.js 文件中执行此操作。可能是这样的:

var application = require("application");

if (application.ios) {
    var __extends = this.__extends || function (d, b) {
        for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
        function __() { this.constructor = d; }
        __.prototype = b.prototype;
        d.prototype = new __();
    };

    var appDelegate = (function (_super) {
       __extends(appDelegate, _super);
       function appDelegate() {
           _super.apply(this, arguments);
       }

       appDelegate.prototype.applicationDidFinishLaunchingWithOptions = function (application, launchOptions) {
            // Do your magic here...
       };

       appDelegate.ObjCProtocols = [UIApplicationDelegate];
       return appDelegate;
    })(UIResponder);
   application.ios.delegate = appDelegate;
}

您可以将处理程序添加到 application.launchEvent。此事件在 didFinishLaunchingWithOptions 中引发,因此您可以在那里访问 OSApplication 实例。从那里您可以使用 _window 字段访问我们的 UIWindow。我不建议访问私有字段,但我们还没有公开它。 请注意,此 window 尚未设为 keyAndVisible。