2013-09-25 21 views
7

Próbuję dodać kontroler splitview jako kontroler widoku podrzędnego. nadrzędny kontroler widoku to kontroler nawigacyjny. pasek nawigacji jest ukryty dla nadrzędnego kontrolera widoku i chciałem pokazać pasek stanu jako standard iOS 6. Dodałem kontroler splitview jako kontroler widoku podrzędnego, ponieważ chciałem wypchnąć do innego kontrolera widoku z kontrolera podziału.Pasek statusu UISplitViewController iOS7

Problem, przed którym stoję, to kiedy dodam kontroler podziału, pasek stanu pokrywa się z zawartością. ustawienie edgeForExtendedLayout na UIRectEdgeNone dla widoku master, detailview, parentview, splitview nie działa.

Proszę dać mi znać rozwiązanie, które można zastosować, aby zapobiec nakładaniu się zawartości z paska stanu i pokazać pasek stanu jako ios 6 standardów.

Próbowałem zrobić to za pomocą MGSplitViewController, ale napotkał ten sam problem.

Dzięki.

+0

Posiadanie tego samego numeru. Ciekawy również. Wygląda na to, że zalecane przez Apple techniki nie działają z SplitViewController. Na przykład zobacz: https://developer.apple.com/library/ios/qa/qa1797/_index.html –

+0

Czy już to wymyśliłeś? Mam również ten sam problem z UISplitViewController, i tak jak ty już próbowałeś ustawiać edgeForExtendedLayout dla wszystkich możliwych kontrolerów widoku bez rezultatu. Dzięki. –

Odpowiedz

0

Kiedy mówisz:

Próbuję dodać podziału widoku kontrolera widoku za dziecko kontrolera.

Czy chodzi ci o ustawienie kontrolera UISplitViewController jako rootViewController? Jeśli nie, to może być dziwne zachowanie.

Jednak UISplitViewControllers nie są przeznaczone do pracy w ten sposób zobaczyć tę odpowiedź https://stackoverflow.com/a/2642701/383603

użyłbym kontroler widoku pojemnik utworzyć kontroler widoku niestandardowym dzielone: ​​https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

mnóstwo dobrych linków tutaj: Container View Controller Examples

Oczywiście nieco denerwujące konieczność odtworzenia go, ale przynajmniej masz pełną kontrolę nad jego zachowaniem.

0

Myślę, że trzeba użyć kontrolera parentcontroller i dziecko z włączonym kontrolerem nawigacji może ci pomóc. Jeśli nie, spróbuj tego tutorial. To bardzo mi pomogło, mam nadzieję, że może ci również pomóc.

1

Mam dokładnie ten sam problem i udało mi się rozwiązać ten problem. Mam UITabBarController w katalogu głównym z innym UISplitViewController na każdej z pierwszych dwóch kart. W przypadku niektórych widoków szczegółów został nałożony na siebie zarówno z paska nawigacji u góry, jak iz paska kart u dołu.

Próbowałem ustawić edgesForExtendedLayout również bez powodzenia na początku, ale okazało się, że musisz ustawić go tak wcześnie, jak to tylko możliwe, aby działał. Nie określiłeś w pytaniu, gdzie dokładnie ustawiłeś swoją nieruchomość, więc mam nadzieję, że to ci pomoże: ustaw edgesForExtendedLayout na UIRectEdgeNone w -viewDidLoad Twojego UIViewController.

Jest to kod, który naprawił dla mnie, podczas gdy wcześniejsze próby to zrobić w -viewWillLayoutSubviews nie miała wpływu na wszystkich:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Prevent detail screen from sitting underneath navigation bar and tab bar: 
    self.edgesForExtendedLayout = UIRectEdgeNone; 
} 

Hope this helps ...

Erik

Powiązane problemy