2012-03-10 7 views
5

Sono abbastanza nuovo qui. Ho un problema con il nuovo pop-in di diapositiva iOS 5.1 in UISplitView. (Prima di 5.1 il controller della vista principale veniva presentato in un popover, ma ora scorre semplicemente nella sinistra). Quando il mio dispositivo è in modalità verticale e riceve un avviso di memoria, il controller della vista master si scarica; e quando premo il pulsante della barra degli strumenti per scorrere nella vista principale, si carica di nuovo. Tuttavia, dopo l'avviso di memoria, viene presentato a schermo intero e non solo le dimensioni della vista principale originale. (Quando ruoto il dispositivo in orizzontale e di nuovo in verticale, viene ripristinata la dimensione corretta.)UISplitView nuovo pop-up slide-in diventa a schermo intero dopo avviso di memoria in iOS 5.1

Prima di iOS 5.1 veniva sempre presentato nel popover con le dimensioni corrette.

Qualcuno ha un'idea, come correggere questo?

Ho provato a impostare la dimensione del frame della vista master, ma non risolve il problema.

Qualsiasi aiuto è molto apprezzato!

+0

Ho la stessa domanda. Questo cursore può essere disattivato? Preferisco il popover. Forse la compilazione con un vecchio SDK di base è la soluzione, non lo so. – Ricardo

risposta

5

Ho avuto lo stesso problema, ma ho usato questo codice per risolvere il problema:

-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController 
{ 
    aViewController.view.frame = CGRectMake(0, 0, 320, self.view.frame.size.height); 
} 

A quanto pare quando si riceve un avviso di memoria, il controller della vista viene rilasciato, in modo che quando si presenta di nuovo, ottiene la sua dimensione dalla sua vista genitore, che è a schermo intero. Quindi devi solo ripristinare il frame ogni volta che viene caricato.

+0

Wow, fantastico! Grazie mille. Funziona perfettamente! :) – Joxy

0

Ho avuto lo stesso problema.

È necessario aggiungere il codice seguente a AppDelegate.

splitViewController.presentsWithGesture = NO;

+0

Ho scoperto che dovevo impostarlo prima di visualizzare splitViewController (prima di aggiungere la sua vista alla vista della finestra), altrimenti non avrebbe alcun effetto. In ogni caso, ciò non ripristina la nuova finestra di scorrimento sul vecchio popover, ma rimuove solo la possibilità di mostrarlo con un gesto di scorrimento nella vista di dettaglio. – arlomedia