Domanda

Ho un'app che ruota su alcune (ma non su tutte) le schermate e voglio anche aggiungere una UIView come sovrapposizione che appare su tutte le schermate, quindi ho pensato di aggiungerla alla finestra. Il problema ora è che quando ruoto il dispositivo, gli schermi ruotano, ma la vista overlay no.

Ho anche provato a usare due UIViewController, uno per le cose normali, uno per la vista overlay, ma non avevo grandi speranze per questo, e avevo ragione. Solo un UIViewController potrà mai effettivamente ruotare.

Quindi, come posso ruotare l'overlay con l'interfaccia, si spera senza la necessità di aggiungere codice a ciascun controller di visualizzazione che ruota per ruotare l'overlay con esso.

È stato utile?

Soluzione

Penso che i tuoi sospetti siano corretti. Dovrai aggiungere la visualizzazione secondaria a ciascun controller di visualizzazione. Non so perché, ma quando aggiungi più viste come sottoview della finestra, solo la prima ottiene la sua - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation ha richiesto ogni cambio di orientamento.

Non l'ho provato, ma sembra che tu possa creare un controller della vista monoparentale che aggiungi come sottoview della finestra che conterrà il controller di navigazione e il controller della vista overlay. Forse chiamerebbe correttamente -shouldAutotrotateToInterfaceOrientation. Ancora una volta questo è ipotetico in quanto non l'ho provato, ma sono sicuro che non funzionerà solo per aggiungere la vista overlay alla finestra.

I migliori saluti,

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top