2016-05-06 19 views
0

Ich habe eine Hülse, das diese in der applicationDidFinishLaunchingWithOptions erfordert ... und ich habe keine Ahnung, was zu tun ist:/self.window in NativeScript

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

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

Klar {N} nicht verwenden Storyboards, so was würde ich hier machen?

EDIT Okay, so scheint dies zu arbeiten, aber es dauert ein bisschen über den gesamten Bildschirm, und die App ist DOA, wenn das Fenster den Abschluss Handler trifft. Ich denke, was ich hier tun muss, ist das ursprüngliche Hauptfenster zu finden und diesen Schlüssel sichtbar zu machen, aber ...?

var myWindow = new UIWindow(); 

    myWindow.makeKeyAndVisible(); 

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

Antwort

1

Sie könnten Handler application.launchEvent hinzufügen. Dieses Ereignis wird in didFinishLaunchingWithOptions ausgelöst, sodass Sie Zugriff auf die OSApplication Instanz haben. Von dort aus können Sie auf UIWindow mit _window Feld zugreifen. Ich empfehle den Zugriff auf private Felder nicht, aber wir haben sie noch nicht veröffentlicht. Bitte beachten Sie, dass dieses Fenster noch nicht keyAndVisible ist.

0

Ich denke, Sie müssen dies in der Datei app.js tun. So etwas wie dieses vielleicht:

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; 
} 
+0

Ich habe diese Methode bereits, ist das Root UIWindow irgendwo in den Argumenten verfügbar? Ich sehe es einfach nicht, es zu benutzen ... –