Sto cercando di trovare una soluzione a questa situazione:
Ho un UITabBarController uno dei suoi passaggi è connesso a un controller di visualizzazione contenitore (BannerViewController) che sto usando per incorporare un UINavigationController, il controller di navigazione spinge altri controller di visualizzazione contenitori (EventListContainerviewController) ognuno di questi contiene un controller tableview.
Qui una schermata del mio pannello di storia
Il problema è che l'ultima vista del contenitore viene visualizzata in un frame più piccolo rispetto ai contenitori. Sembra che perdano lo spazio delle tabulazioni in basso.
Ho forzato tutti i controller di vista, il controller di navigazione e il controller Tabbar per evitare di non estendere i bordi e regolare gli inserti.UINavigationController incorporato in una vista contenitore, visualizza un controller Vista tabella con dimensioni errate
Il colore significa:
Rosso: vista principale del BannerContainerViewController 0x7fcc6d38bb00
luce verde: la vista del contenitore del BannerContainerViewController 0x7fcc6d38b860Blu: vista principale del EventListContainerViewController 0x7fcc6bd7b7c0
Arancione : la vista container di EventListContainerViewController 0x7fcc6bd7b690
Sembra che qualcosa cambi quando il controller di navigazione aggiunge la vista del contenitore blu riducendo le sue dimensioni della stessa quantità di una tabbar (49pt). Si può notare anche nella descrizione ricorsiva della gerarchia vista:
<UIWindow: 0x7fcc6bd5af40; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x7fcc6bd4dd80>; layer = <UIWindowLayer: 0x7fcc6bd317c0>>
| <UILayoutContainerView: 0x7fcc6bd671c0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7fcc6bd66de0>>
| | <UITransitionView: 0x7fcc6bd6a980; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x7fcc6bd6ace0>>
| | | <UIViewControllerWrapperView: 0x7fcc6d3a7b20; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7fcc6d3a7db0>>
| | | | <UIView: 0x7fcc6d38bb00; frame = (0 0; 320 519); autoresize = W+H; layer = <CALayer: 0x7fcc6d38bbd0>>
| | | | | <UIView: 0x7fcc6d38b860; frame = (0 0; 320 519); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7fcc6d38b930>>
| | | | | | <UILayoutContainerView: 0x7fcc6d398000; frame = (0 0; 320 519); autoresize = W+H; gestureRecognizers = <NSArray: 0x7fcc6d3a4b50>; layer = <CALayer: 0x7fcc6d387670>>
| | | | | | | <UINavigationTransitionView: 0x7fcc6d39cfa0; frame = (0 0; 320 519); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x7fcc6d39cc40>>
| | | | | | | | <UIViewControllerWrapperView: 0x7fcc6bf31230; frame = (0 0; 320 519); autoresize = W+H; layer = <CALayer: 0x7fcc6bf31300>>
| | | | | | | | | <UIView: 0x7fcc6bd7b7c0; frame = (0 64; 320 406); autoresize = W+H; layer = <CALayer: 0x7fcc6bd7afe0>>
| | | | | | | | | | <UIView: 0x7fcc6bd7b690; frame = (0 0; 320 406); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7fcc6bd7aac0>>
| | | | | | | | | | | <UITableView: 0x7fcc6f03c400; frame = (0 0; 320 406); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x7fcc6bf34aa0>; layer = <CALayer: 0x7fcc6bf30bc0>; contentOffset: {0, 0}; contentSize: {320, 170}>
| | | | | | | | | | | | <UITableViewWrapperView: 0x7fcc6bf35960; frame = (0 0; 320 406); gestureRecognizers = <NSArray: 0x7fcc6bf363e0>; layer = <CALayer: 0x7fcc6bf35ed0>; contentOffset: {0, 0}; contentSize: {320, 406}>
| | | | | | | | | | | | | <EventCell: 0x7fcc6bca2950; baseClass = UITableViewCell; frame = (0 85; 320 85); autoresize = W; layer = <CALayer: 0x7fcc6bca2ca0>>
ho tenta di utilizzare personalizzato Segue al posto di vista contenitore cercare di forzare il layout, ma credo che è un difetto controller di navigazione.
Come si può vedere il banner non si sovrappone alla vista come previsto.
Qualsiasi suggerimento?
Hai controllato che il tuo viewcontroller abbia l'opzione 'Estendi bordi UnderBottomBars' selezionata? – las
sicuro come ho scritto nella domanda – Andrea
ops ... hanno tutti i bordi avanzati deselezionati – Andrea