Przeciągam okrągły przycisk prostopadły do pozycji prawego przycisku paska i ustawiam obraz na okrągły przycisk prostokątny. Wszystko działa dobrze, z wyjątkiem ostrzeżenia „Zwykły styl nie jest obsługiwany w elemencie nawigacji”. Nawet jeśli wybiorę styl elementu przycisku paska na „Obramowany”, ostrzeżenie nadal będzie widoczne. O co chodzi z Xcode 4.2? Z góry dziękuję!
Ps. Dostosowałem wiele elementów przycisku paska za pomocą przycisku okrągłego prostego, czasami Xcode 4.2 wyświetla tylko jedno ostrzeżenie na elemencie przycisku paska, czasami pokazuje ostrzeżenia na wszystkich elementach przycisku paska.
Odpowiedzi:
Udało mi się usunąć te błędy, ręcznie edytując pliki scenorysu i znalazłem obraźliwy wpis style = "zwykły" na elementach przycisku paska w
<navigationItem>
elemencie.Zmieniony z:
<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">
Do:
<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">
To usunęło ostrzeżenia ... dobrze lub źle.
Może to być zdumiewający hack, a większym problemem jest to, że nie spowodowałem jego rootowania ani nie usunąłem niewidocznych elementów przycisków paska z całego dokumentu. Stało się tak po przejściu przez wszystkie elementy jeden po drugim i odkryciu, że niektóre paski nawigacji były puste (bez dzieci) i prawdopodobnie wystąpiło z dużą ilością dziedziczenia kopiuj i wklej (cmd + c | v) i nie używając duplikatu (cmd + d) do zbudowania interfejsu. Chociaż przyczyną źródłową nie była przyczyna pierwotna, objawem było to, że elementy paska nie były wyświetlane w „widoku konspektu” dokumentu do naprawienia. Zachowanie Interface Builder wydaje mi się czasem niuansowe, a pusty pojemnik, w którym powinno znajdować się coś w widoku konspektu, to zapach. Cóż, teraz jest dla mnie. Czasami usunięcie nieprawidłowego węzła i odbudowanie rozwiązuje najdziwniejsze problemy.
OSTRZEŻENIE: wykonaj kopię zapasową swoich scenorysów, zanim spróbujesz tego ... kontrola wersji jest twoim przyjacielem ... Nie ponoszę żadnej odpowiedzialności, gdy twoja storyboard jest całkowicie połączona i nie będzie się kompilować. Wszystko, co otrzymasz, to „Tak ci powiedziałem!” Kilka razy nauczyłem się na własnej skórze, ale skrupulatna kontrola źródła zaoszczędziła mi bólu głowy.
EDYCJA: umieść nawiasy w blokach kodu
źródło
style="plain"
z kodu źródłowego scenorysu. Tak więc wydaje mi się, że ta sugestia Huntera jest uzasadniona.Jeśli klikniesz ostrzeżenie i nie przejdziesz do niewłaściwego elementu nawigacji, wykonaj następujące czynności. (wizualne przedstawienie odpowiedzi Huntera z bezpieczniejszą metodą na podstawie dodanych komentarzy)
W przeglądarce plików kliknij prawym przyciskiem myszy scenorys i wybierz
Open As Source Code
Na stronie kodu źródłowego wyszukaj „zwykły” i znajdź ten dołączony do elementu nawigacji.
Aby uzyskać nazwę widoku, umieścić „sceny” w pasku wyszukiwania i kliknij strzałkę wyszukiwania z powrotem, aby szukać przede wszystkim na tym tagiem powyżej
navigationItem
Oto nazwa Twojej Sceny, możesz teraz zmienić widok Storyboard z powrotem na
Interface Builder - Storyboard
za pomocą metody prawego kliknięcia opisanej powyżej, a następnie przejdź do wyboru Sceny w menu sceny i elementu paska w nim.Przejdź do Inspektora atrybutów i zmień styl z
Plain
naBordered
źródło
Przestałem ostrzegać przed zwykłym stylem, zaglądając do konspektu dokumentu. To pokazywał mój element nawigacyjny, a w ramach tych dwóch elementów przycisków paska, a w każdym z nich przycisk. Obrażające ustawienie znajdowało się na przycisku paska. W Inspektorze atrybutów zmieniłem Styl z Zwykłego na Gotowe i ostrzeżenie zniknęło. Uwaga: używam XCode 5.
źródło
Jeśli korzystasz ze scenorysu, kliknij ostrzeżenie i powinno przenieść Cię do niewłaściwego elementu nawigacji (miałem dwa za problem, jeden zabrał mnie tam, a drugi nie) - zmień styl i wyczyść projekt.
źródło
backBarButtonItem
leftBarButtonItem
irightBarButtonItem
sąUINavigationItem
obiektami. Nie ma żadnejstyle
własności,UINavigationItem
więc to jest powód ostrzeżenia. Należy programowo ustawić barButtons:iOS 4:
UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect]; [bt setFrame:YourFrame]; //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal]; [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt]; self.navigationItem.leftBarButtonItem=leftButton;
IOS 5+:
Przeczytaj sekcję „Dostosowywanie wyglądu” w dokumentacji UIBarButtonItem .
źródło
Na pasku nawigacji spróbuj użyć UIBarButtonItem zamiast okrągłego prostego przycisku i ustaw dla niego Image.
źródło
W moim przypadku był to obraz strzałki wstecz, która została ustawiona na „Zwykły”.
Pojawia się komunikat o błędzie dotyczący wszystkich elementów na pasku nawigacyjnym.
źródło
Po upewnieniu się, że wszystkie przyciski paska w scenorysie są ustawione na coś innego niż zwykły, upewnij się, że wykonałeś zatwierdzenie git i usunięto dane pochodne. Spędziłem wieczność próbując dowiedzieć się, dlaczego problem się nie naprawił, a usunięcie folderu danych pochodnych naprawiło go za mnie.
źródło