2017-05-10 4 views
0

Ich versuche, eine "globale Ansicht" in der AppDelegate zu erstellen. Die Ansicht zeigt also immer an, welcher Controller in der App aktiviert ist. Ich habe dafür einen Cocoapod gebaut und hier ist ein sehr grundlegender Code, den ich bis jetzt habe.Globale Ansicht in AppDelegate

import UIKit 

open class BetaBug: NSObject { 
    public var myView = UIView() 
    public override init() { 
     super.init() 
    } 

    open func show() { 
     if let window = UIApplication.shared.keyWindow { 
      myView = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50)) 
      myView.backgroundColor = UIColor.green 
      window.addSubview(myView) 
     } 
    } 
} 

Und im AppDelegate von meinem Projekt habe ich in didFinishLaunchingWithOptions

let a = BetaBug() 
    a.show() 

Bin ich auf dem richtigen Weg hier? Ist das möglich?

+0

Setzen Sie keine * UI-Elemente * in 'AppDelegate'. Stattdessen versuchen Sie, Ihre Ansicht in Custom 'UINavigationController zu setzen. 'UINavigationController' hat bereits' NavigationBar', die in jedem 'UIViewController' angezeigt wird –

Antwort

0

Ich denke, Sie können separate Viewcontroller und fügen Sie transparentes Bild im Hintergrund auch setzen klare Farbe der Draufsicht in VC. Dann können Sie die Ansicht von vc mit addsubview von rootviewcontrller hinzufügen. Um Sie zu entlassen, können Sie nsnotificationcenter verwenden. Ich mache genau das Gleiche.