2015-07-03 7 views
6

Po kliknięciu przycisku na pierwszym ekranie użytkownik otrzymuje kontrolery widoku zawarte w kontrolce paska kart. Kontrolery widoku mają w sobie dwa widoki tabeli, pierwszy to najwyższy statyczny stół i druga tabela tuż poniżej. Kontrolery widoku w kontrolerze paska kart, które nie są w "więcej", wyświetlają się poprawnie. Jeśli przejdę do "więcej" i wybiorę kontroler widoku, wyświetli się widok z naciśniętą górną komórką.Dlaczego zmienia się mój początek UITableview Y na podstawie pozycji w TabBarController

Jeśli przejdę do ekranu "więcej", kliknij edytuj i przenieś kontrolery widoku w jakikolwiek sposób, przejrzyj kontroler wyświetlany poprawnie na ekranie "więcej". Po opuszczeniu sekcji "więcej" górna komórka tabeli (górny stół) nie jest wyświetlana.

Wydaje mi się rozsądne, że istnieje problem w interfejsie użytkownika lub w scenorysie, jednak nic nie wyskakuje na mnie jako problem. Próbowałem zarówno ręcznego ustawiania ograniczeń, a także przy użyciu sugerowanych ograniczeń.

projekt Próbka ta jest dostępna w https://github.com/propstm/NavigationStructureTest

Top two images are prior to modifying the order of view controllers in the tab bar controller. The bottom two, after.

Odpowiedz

2

klas Wyłącz rozmiar i usunąć ograniczenie (top Tableview) przycisku "przestrzeni w pionie do górnej prowadnicy układ", dodać pin górną przestrzeń Super View może rozwiązać ten problem. Może to błąd Xcode, zobacz this.

+0

Po co przegrać, a potem przegłosować? Odpowiedź jest niezrozumiała? – NSDeveloper

+0

Usunięcie przewodnika układu górnego i użycie pinezki działa zarówno w przykładowej aplikacji, jak również w mojej większej aplikacji klienckiej, która miała problem. Dziękuję za udostępnienie tego linku - rozwiązanie problemu nie było czymś, na co sam bym się zdecydował. – propstm

3

po prostu zaktualizowane ograniczenia w dwóch Tabeli VC, problem nie było.

top tableview constraints

bottom tableview constraints

+0

Z jakimi ograniczeniami korzystasz? Zaktualizowałem główny wzorzec próbki, aby nie było żadnych problemów w scenorysie i problem nadal istnieje. – propstm

+0

pls porównaj swoje ograniczenia z edytowanej odpowiedzi –

+0

Te wartości nie działają dla mnie.Górna przestrzeń do górnego przewodnika po układzie wynosi -44 i powoduje przesunięcie najwyższego widoku tabeli poniżej paska nawigacji. Czy byłbyś w stanie popchnąć żądanie ściągnięcia do przykładowego projektu? – propstm

0

Myślę, że ma to coś wspólnego z kontrolerem "more" dostarczonym przez TabBarController mającym własny kontroler nawigacyjny, a twój zestaw scenariuszy został ustawiony tak, aby rozszerzać krawędzie poza górne paski.

Mimo że próbujesz ukryć pasek nawigacji, myślę, że jest on wykonany w niewłaściwym miejscu i powinien być wymagany tylko wtedy, gdy element jest prezentowany w kontrolerze "więcej". Sposób, w jaki jest obecnie implementowany, mylony jest z przewodnikiem topowym, który wydaje się pozostawiony przy założeniu, że są dwa górne paski, mimo że jeden z nich jest ukryty.

Udało mi się naprawić projekt demonstracyjny na dwa sposoby. Przez:

1) Aktualizacja storyboard i wyłącz „przedłużyć krawędzie” na pasku kart (i ustawić pasek kart i górne pręty być nieprzezroczysta):

enter image description here

LUB

2) uprościć viewWillAppear/znika i viewDidAppear/znikają metod i ukrywanie paska nawigacyjnym w pasku kart więcej regulatora:

- (void)viewDidAppear:(BOOL)animated{ 
    //self.navigationItem.backBarButtonItem.title = @"HOME"; 

    self.tabBarController.title = @"Entity List"; 

    //Pretty activity indicator 
    [self.topTableView reloadData]; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    if (self.navigationController == self.tabBarController.moreNavigationController) { 
     [self.tabBarController.navigationController setNavigationBarHidden:YES]; 
    } else { 
     [self.navigationController setNavigationBarHidden:NO]; 
    } 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [self.navigationController.navigationBar setHidden:NO]; 
} 

- (void)viewDidDisappear:(BOOL)animated { 
} 

Dzięki temu górna nawigacja jest wyświetlana poprawnie bez zakłócania przewodnika układu.

Powiązane problemy