Ho pensato che fosse facile come [myWindow resignKeyWindow]
e [self.window makeKeyAndVisible]
ma suppongo di no ... Ragazzi sapreste cosa fare?Come rimuovere una UIWindow?
Grazie :)
Ho pensato che fosse facile come [myWindow resignKeyWindow]
e [self.window makeKeyAndVisible]
ma suppongo di no ... Ragazzi sapreste cosa fare?Come rimuovere una UIWindow?
Grazie :)
Non invocare -resignKeyWindow
direttamente, è stato concepito per essere sovrascritto per eseguire del codice quando i UIWindows viene rimosso. Per rimuovere la vecchia finestra è necessario creare una nuova istanza di UIWindow e renderla -makeKeyAndVisible
, la vecchia finestra rinuncerà allo stato della chiave. In iOS 4 raccoglierà anche il tuo vecchio UIWindow, a condizione che tu non abbia alcun riferimento ad esso. Fare questo in iOS 3.x avrebbe effetti disastrosi. Avvisato
Questo effettivamente cambia quale finestra è la chiave Window, ma non sembra rimuoverla da application.windows .... – samvermette
La superview della finestra personalizzata è nulla. Basta impostare è nascosto a NO – tristan
questa risposta sotto (da Nikolai Ruhe) ti dice come effettivamente rimuovere una finestra –
Ho lo stesso problema, potrebbe aiuta.
È necessario distruggere tutti i rif. Forti prima di rimuovere e dealloc di una finestra, in particolare il rootWindowController. Credo che qui di seguito il codice è sufficiente per eliminare qualsiasi finestra:
[self.window.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
self.window.rootViewController = nil;
[self.window resignKeyWindow];
[self.window removeFromSuperview];
Come menzionato in alcuni degli altri post, non dovresti chiamare direttamente "resignKeyWindow'. – ThomasW
Il modo corretto per nascondere una finestra è quella di impostare la proprietà hidden
su YES. Per rimuoverlo dalla proprietà windows
di UIApplication, basta rilasciare la finestra (in ARC si impostano tutti i riferimenti su zero).
Ovviamente vorrai avere un'altra finestra in questo momento.
Non è possibile rimuovere la finestra dal Delegato app. Tuttavia è possibile rimuovere qualsiasi finestra personalizzata creata.
Per rimuovere la finestra è necessario innanzitutto fornire una sostituzione. Quindi otteniamo la finestra di default.
Ora abbiamo accesso alla finestra predefinita dalla proprietà appdelegate.window.
Ora ottieni il controller di navigazione originale o personalizzato. Assegna auto come rootviewcontroller.
Calling makekeyandvisible rimuove tutte le finestre e assegna appdelegates finestra come finestra chiave. Imposta rootViewController come NavigationController che hai appena creato e sei a posto!
DEMONavigationController *demoNav = [[DEMONavigationController alloc]initWithRootViewController:self];
[appDelegate.window makeKeyAndVisible];
appDelegate.window.rootViewController = demoNav;
Grazie!
Se avete qualsiasi finestra diversa finestra app, usarlo ..
let mainWindow = UIApplication.shared.delegate?.window
mainWindow??.makeKeyAndVisible()
Puoi spiegare/elaborare un po 'di più quello che sei fino a? Poiché la domanda non è troppo chiara. Potrebbe essere che ho torto. –