7

Ho una barra delle schede e nella vista "A" e in "A" ho un controller di navigazione. SO all'interno del mio controller di navigazione in "A" ho chiamatoCome mostrare modalviewcontroller sopra la tabbar

[self presentModalViewController:modalView animated:YES] 

Ma modalView mostra sotto la barra delle schede. Come mostrarlo sopra la barra delle linguette?

risposta

1

La causa di questo è che il viewController antenato non è impostato correttamente. per esempio immaginare:

UIViewController * myController = ... // a view controller without a proper ancestor 

ora:

myController.tabBarController == nil 

Pertanto:

[myController presentModalViewController:otherController]; 

fallirà (presentandosi sotto la barra delle schede). La correzione è quello di aggiungere myController al suo antenato tramite

[parentController addChildViewController:myController]; 

Ora, parentController deve essere aggiunto ad un altro controllore nello stesso modo e così via fino a quando quello principale è il vostro tabController. Questo è disponibile solo su iOS 5+. Se build per iOS 4 o versioni precedenti, dovrai aggirare il problema assicurandoti che tutti i controller vengano aggiunti direttamente a un controller UINav o UITab. Se questo non è possibile, dovrai accedere a UITabBarController tramite una variabile globale.

+0

ho usato globale Grazie, –

14

cercano di presentare vista modale da UITabBarController:

[self.tabBarController presentModalViewController:modalView animated:YES]; 
+0

controller di vista modale non mostra affatto ((( –

+0

tua tabBarController sta rivelando come nullo qui. – George

1

Nel mio caso il controller della vista presentato aveva UIModalPresentationStyle.CurrentContext a .modalPresentationStyle, che ha reso la tab bar sovrapposizione

+0

Ehi, sei stato in grado di risolvere questo problema. Sto affrontando lo stesso problema.: | –

+0

@YashBedi, sì, ho impostato lo stile di presentazione modale su uno predefinito. Nel mio caso lo stile di presentazione modale è stato modificato da uno di default da un incidente – Tim

+0

ohkay kewl grazie, –

Problemi correlati