2009-09-16 11 views
6

Ho un UITabBarController nella mia applicazione. Nella prima vista di questo controller ho un UINavigatioController e l'utente può navigare a più viste attraverso questo NavigationController. Nella rootview di questo controller ho la mia vista frontale o principale dell'applicazione che ha un'icona di informazioni, che capovolge lo schermo alla pagina di informazioni che è un'altra vista nella mia appDelegate. Quindi uso il seguente codice dal mio appdelegate per passare alla pagina delle informazioni.Come rimuovere una barra bianca dall'alto in iPhone

UIView * controllersView = [aboutUsViewController view]; 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES]; 
[self.window addSubview:controllersView]; 
//[aboutUsViewController animateView]; 
[self.tabBarController.view removeFromSuperview]; 
[UIView commitAnimations]; 

mio problema è quando I flip, vedo una piccola barra bianca in alto. Questa barra bianca viene vista solo mentre si sfoglia dalla vista principale che è la prima schermata della pagina delle informazioni e non viceversa.

Sono confuso come rimuovere questa barra poiché ho un UIImage che copre la mia intera pagina sulla vista principale.

Come risolvere questo.

risposta

0

Ho avuto lo stesso problema. Penso che questo sia un bug nel sistema operativo 3.1. Segnala un bug con Apple. La mia soluzione attuale era quella di utilizzare la transizione modale standard di scorrimento. Non è la soluzione migliore, ma almeno non sembra strano.

+0

http://bugreport.apple.com/ – slf

0

Hai provato a impostare wantsFullScreenLayout sul controller di visualizzazione?

2

Se la barra è visibile solo durante una transizione, cambiare il colore della finestra principale in modo che corrisponda alla vista in cui si sta effettuando la transizione. Oppure puoi renderlo totalmente traslucido, il che può fare lo stesso.

+0

Bene anche se cambio il colore della finestra principale, lo sfondo cambierà significa background mentre in transito. Sto parlando della barra sullo schermo che è la transizione mentre la finestra rimane nello stesso posto. – rkb

+0

Quali sono le dimensioni delle due viste? E hai una barra delle schede sulle prime visualizzazioni e nessuna sulla visualizzazione delle informazioni, giusto? Hai una barra di stato in una o entrambe le visualizzazioni? – mahboudz

0

Non sono sicuro se si sta visualizzando la barra di stato oppure no, ma si consiglia di verificare se le dimensioni di UIImage si trovano completamente nella parte superiore della visualizzazione, soprattutto se è stata aggiunta in IB. Inoltre, prova a impostare le impostazioni della cache nella transizione a NO per vedere se questo fa la differenza. Usa più risorse, ma ho dovuto farlo per impedire ai campi di testo di cancellarsi durante una transizione.

+0

Sì UIImmagine copre fino in cima. – rkb

0

Probabilmente non dovresti fare tutte quelle animazioni da solo. Non sono esattamente sicuro di quale sia il tuo obiettivo, ma potrebbe essere più semplice utilizzare qualcosa chiamato "pushModalViewController" e avere un controller per la tua pagina di informazioni, insieme a una vista. Questo potrebbe risolvere il problema, perché potrebbe essere solo qualcosa a che fare con le animazioni.

Quindi, quando si esce dalla pagina delle informazioni, il controllo ritorna al controller di navigazione (che è ciò che penso che si desidera). Spero che aiuti.

0

ho avuto lo stesso puzzle/rompicapo/problema: dopo la commutazione da una vista modale vista sottostante aveva una luce barra di stato blu, che ha mostrato per mezzo secondo:

enter image description here

Tuttavia, poiché Ho fatto questo screenshot, ho capito che non si trattava della barra di stato, ma di un resto remoto della barra di navigazione. Sono passato barra di navigazione al largo nel delegato app, ma qui ancora, e solo durante la transizione (dopo la transizione UIModalTransitionStyleFlipHorizontal non c'era barra blu)

Perciò quello che ho fatto è stato dare un colore traslucido:

self.title = @""; 
self.navigationController.navigationBar.tintColor = [UIColor clearColor]; 

Potrebbe non essere la soluzione migliore al mondo, ma non è un bug con Apple.

Problemi correlati