2010-12-20 7 views
1

Ich habe eine Tab-Bar-Controller-basierte App, die vier Ansichten hat. Ich habe einen Splash-Screen Ich lade in meinem AppDelegate, die nach einer gewissen Zeit zeigt die Tab-Leiste wie folgt:So verstecken Sie einen UITabBarController, bis WebViewdidFinishLoad in der ersten Ansicht erstmals aufgerufen wird

// Tab-Leiste anzeigen [window addSubview: tabBarController.view];

Was ich tun möchte ist, den Splash-Bildschirm sichtbar zu machen und in meiner ersten Ansicht, die geladen ist, zeigen Sie den TabBarController erst, nachdem mein WebViewDidFinishLoad Delegat in FirstViewController.m das erste Mal ausgeführt wird.

Gibt es eine Möglichkeit, dies zu tun? Ich lerne gerade, wie man das macht und bis jetzt scheint ich kein Glück mit irgendeinem Code zu haben, den ich versucht habe, dies zu erreichen. Ich kann jedoch immer noch nicht den UITabBarController verstecken und anzeigen.

EDIT: Ich fand diesen Code, der als Barriere für den Code nützlich ist, ich brauche die Eltern UITabBarController zeigen:

  • (void) webViewDidFinishLoad: (UIWebView *) webView { // fertig Laden Sie das Aktivitätskennzeichen in der Statusleiste aus [UIApplication sharedApplication] .networkActivityIndicatorVisible = NO;

    // Immer noch geladen? if (web.loading) zurückgeben; }

+0

nur als Randnotiz - stellen Sie sicher, wenn Ihr Webview eine Seite im Internet lädt, die Sie für eine Netzwerkverbindung überprüfen. Andernfalls bleibt Ihre Anwendung auf dem Startbildschirm hängen, wenn keine Verbindung besteht und sie nicht im App Store akzeptiert wird. – mackross

Antwort

1

ein Objekt Ihrer Splash-Screen Machen von Nib verwenden und diese auf Fenster

[Fenster addSubView: obj] hinzuzufügen; [self performSelector: @selector (loadFirstViewOnDelay) withObject: nil afterDelay: 0.5];

in DidFinishLaunching

dann

- (void) { loadFirstViewOnDelay

[window addSubview: tabBarController.view]; }

Verwandte Themen