Zrobiłem samouczek na moim blogu, więc wiem, jak zrobić rozciągliwy przycisk, który może wyświetlać dolny (stos) tytuł kontrolera viewcontroller. Ale miałem nadzieję, że mam ikony (jak dom dla DOMU) i bez tekstu i nie będę zmieniać rozmiaru.iOS 5: W jaki sposób zaimplementować niestandardowy przycisk powrotu (obrazu)?
Korzystając z mojego niestandardowego obrazu i poniższego kodu, otrzymuję rozciągniętą wersję (nie jest wymagana) z tytułem nad górną częścią (nie jest wymagana) i po kliknięciu (jest dobra) ma zabarwienie/podświetlenie;
UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Teraz Rozglądałem się tu i czytać wszystkie podobne pytania, na które zwracają stare odpowiedzi i mają dziwne wyniki dla mnie. Oto kod, który wypróbowałem;
UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
Ta metoda nie wyciągnę przycisku niestandardowego obrazu (to dobrze), ani też nie pokazuje tekstu (co chcę) jednak wciąż jest oryginalny niebieski przycisk pod nim (WTF), a mój zwyczaj przycisk nie odcień po kliknięciu, tylko niebieski przycisk pod nim działa!
Proszę o pomoc, co mi brakuje?
* UPDATE
Naprawiłem to trochę stosując zmienny rozmiar obrazu. To zmusza go, aby nie „odcinku”
UIImage *backButtonHomeImage = [[UIImage imageNamed:@"backButtonHomeWhite_30.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonHomeImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Aby rozwiązać ten tytuł pokazujący się na przycisku musiałem zrobić
self.title [email protected]" ";
Teraz jest trochę brudny fix ale wydaje się działać . Jedynym problemem, który pozostało, jest to, że chcę mieć inny przycisk wstecz w różnych widokach, a ta metoda powoduje pewne problemy; ostatni widok, który ustawia przycisk over-rides wszystkich innych widoków. Ostatecznie, w zależności od sposobu poruszania się po aplikacji, powrót do poprzedniego widoku ma niewłaściwy przycisk powrotu i nigdy nie jest resetowany do prawidłowego.
UPDATE 2: Potencjał IDEA:
Czy dodaje się być rozsądnym rozwiązaniem, czy też jest to hack, który jest odpowiedzialny złamać coś?
Ukrywanie domyślny przycisk Wstecz, jak tak,
[self.navigationItem setHidesBackButton:YES animated:NO];
... a następnie przy użyciu niestandardowego UIBarButtonItem, z przyciskiem w stylu I rzeczywiście chcesz umieścić w położeniu przycisku tyłu, który wysyła komunikat popViewControllerAnimated: do UINavigationController po dotknięciu.
Jeśli znasz bardziej niezawodne rozwiązanie, proszę podziel się, dziękuję.
Nie możesz po prostu zmienić go z Inspektora atrybutów? – nemesis
Chciałbym wiedzieć, w jaki sposób ... Wybrałem pierwszy kontroler widoku w scenorysie, potem poszedłem do inspektora atrybutów i rzeczywiście widzę pudełko pod elementem nawigacyjnym, który mówi przycisk wstecz, jednak nie mam pojęcia, jak tego użyć; Próbowałem wpisywać nazwę obrazu, ale wydaje się, że nic nie robi. Jakieś sugestie? – RobDigital
Istnieje inne podejście do rozwiązania tego problemu - możesz przeciągnąć ogólny przycisk na pasek nawigacji, a następnie odtwarzać niestandardowe obrazy i nazwy. Mam nadzieję, że to ci pomoże! – nemesis