Ho controllato le altre risposte ma non ho trovato nulla che descriva veramente la mia situazione. Quindi ecco qui.il vecchio display passa-dopo-modal-view-controller problema
Ho un'app basata su finestra che crea e carica un UIViewController da xib. Ha barra di stato disabilitato, altezza di 480 e un UISegmentedControl con origine y di 451. Esso mostra bene nella parte inferiore dello schermo *
In viewDidLoad del UIViewController che crea un UIView initWithFrame:CGRectMake(0.0, 0.0, 320.0, 431.0)];
(che è 480 -. 29 pixel per UISegmentedControl e 20 per la barra di stato.) Lo aggiungo a UIViewController con [self.view addSubview:gameBoard];
. Poi alcune parti di gioco di UIView sono aggiunte come sotto-visualizzazioni della UIView di gameboard e tutto viene visualizzato come penso che dovrebbe essere.
Quando alcune di quelle sottoview di UIView vengono toccate, dovrebbe apparire un menu. Ho creato un UIViewController con i controlli necessari su di esso. Io uso un metodo delegato per chiamare dalle subviews, che raccolgono gli eventi di attivazione, al UIViewController radice - che fa
self.squadOrders = [[SquadOrders alloc] initWithNibName:@"SquadOrders" bundle:nil];
squadOrders.viewControllerDelegate = self;
[self presentModalViewController:squadOrders animated:YES];
E i display di dialogo modale come penso che dovrebbe, scivolando dal bordo inferiore del lo schermo, che non copre la barra di stato ma copre UISegmentedControl menzionato nella parte inferiore della radice UIViewController. Viene scartato da
[self dismissModalViewControllerAnimated:YES];
ed è qui che iniziano i problemi. Il controllo UISegmented viene spostato verso il basso di 20 pixel in modo che solo 9 pixel siano visibili nella parte inferiore dello schermo. C'è uno spazio bianco di 20 pixel nella parte superiore in cui la vista è stata spostata verso il basso.
* abilitando la barra di stato su questo o qualsiasi altro xib non cambia affatto il comportamento descritto.
Altre domande StackOverflow correlati sono:
IPhone - After dismissing Modal View Controller - gap is left at top of page - ma la soluzione data era non avere un altro controller di vista caricato come una visualizzazione secondaria del controller della vista che visualizza il modal - ma non lo faccio, solo UIViews. C'è anche il suggerimento di reimpostare il fotogramma appropriato dopo che il modale scompare, ma sembra un imbroglio.
Contents of UIScrollView shifted after dismissing ModalViewController - Ho giocato con le altezze di tutti i punti di vista e controller - sono sicuro che corrispondono, non ha aiutato. Di nuovo, il frame può essere resettato ma si rivolge solo al sintomo.
Ce ne sono altri, ma finora non è stato risolto nulla.
guardando a self.view.fotogramma immediatamente prima della visualizzazione del modale, è 0,0,320,480. Quando il modale viene rimosso diventa 0,20,320,460. Spero possa aiutare. –
Non posso credere che non ci sia soluzione. – ZaBlanc