2015-09-10 10 views
6

Se si posiziona un controller della vista divisa all'interno di un controller della barra delle schede, la barra di navigazione e la barra delle schede sono più scure sul lato sinistro. Ho allegato uno screenshot. Ho creato questo creando un'applicazione Master-Detail e quindi aggiungendo un controller della barra delle schede. Come correggi questo problema?La barra di navigazione per il controller della vista divisa è più scura quando si trova all'interno di un controller della barra delle schede

enter image description here

+0

Ho scoperto che il controller della vista principale non si estende sotto le barre di navigazione e le barre delle schede in modo che raccolga il colore di sfondo dal controller della vista divisa invece del controller della vista principale, motivo per cui è più scuro. –

+0

Il View Debugger mostra che il master si sta infatti estendendo al di sotto delle barre. Per qualche motivo le barre non disegnano correttamente. Hai trovato una soluzione a questo problema? – Joey

+1

No, è un bug. L'ho mostrato ad un ingegnere Apple. L'ho registrato quando ho postato ma non l'hanno risolto e non sembra esserci alcun tipo di soluzione alternativa. –

risposta

0

Imposta vista backgroundColor del controller di navigazione al bianco:

self.navigationController?.view.backgroundColor = UIColor.whiteColor() 

Ciò preservare il colore grigio chiaro.

È possibile anche disattivare traslucenza, ma poi la barra di navigazione sarà in bianco:

self.navigationController?.navigationBar.translucent = false 

Le risposte provengono da questa domanda Stack Overflow: Dark shadow on navigation bar during segue transition after upgrading to Xcode 5.1 and iOS 7.1

+0

Questo non risolve il problema per me ... –

3

Al momento della scrittura (Maggio 2017) questo errore esiste ancora. Non posso credere che Apple non si prenda cura di questo. La parte peggiore è che se si ruota il dispositivo, si apre il master da un lato e si ruota indietro, le barre traslucide cambiano posto e improvvisamente il master ha una barra traslucida funzionante e il dettaglio non lo è. :/

L'unica correzione possibile che è stato in grado di creare è stata quella di sbarazzarsi di UITabBarController e creare invece la mia implementazione di un controller di barra delle linguette utilizzando un UIViewController semplice con UITabBar nella parte inferiore e l'API di contenimento di UIViewController .

Questo significa molto codice per reinventare la ruota. È triste non utilizzare UITabBarController ma è così. Devi fare un compromesso tra il controller del contenitore e tutte le sue caratteristiche gradevoli come il controller "Altro" che ottieni gratis rispetto alle barre traslucide.

Se riesci a vivere senza barre traslucide, continuerei a utilizzare UITabBarController per eseguire tutta la codifica. D'altra parte, si potrebbe sostituire UITabBar con UICollectionView e avere più di 6 articoli senza aver bisogno di un controller "Altro".