Dodałem kontrolę nawigacji, aby przełączać się między widokami w mojej aplikacji. Ale niektóre widoki nie powinny mieć przycisku „Wstecz” (poprzedni tytuł). Wszelkie pomysły dotyczące ukrywania przycisku Wstecz?
Dodałem kontrolę nawigacji, aby przełączać się między widokami w mojej aplikacji. Ale niektóre widoki nie powinny mieć przycisku „Wstecz” (poprzedni tytuł). Wszelkie pomysły dotyczące ukrywania przycisku Wstecz?
Odpowiedzi:
Cel C:
self.navigationItem.hidesBackButton = YES;
Szybki:
navigationItem.hidesBackButton = true
self.navigationItem.leftBarButtonItem = nil;
. Jeśli wyraźnie ustawiłeś lewy pasek przycisków, możesz użyć self.navigationItem.leftBarButtonItem = nil;
. self.navigationItem.hidesBackButton = YES;
ukryje Przycisk Wstecz Przedmiot
Najlepszym sposobem jest połączenie ich, aby ukrył przycisk Wstecz, nawet jeśli skonfigurujesz go ręcznie:
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;
ukryj przycisk Wstecz z poniższym kodem ...
[self.navigationItem setHidesBackButton:YES animated:YES];
lub
[self.navigationItem setHidesBackButton:YES];
Również jeśli masz niestandardowy, UINavigationBar
spróbuj kodu poniżej
self.navigationItem.leftBarButtonItem = nil;
W Swift :
Dodaj to do kontrolera
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated: false)
}
Użyj kodu:
self.navigationItem.backBarButtonItem=nil;
W funkcji viewDidLoad sterownika UIViewController użyj kodu:
self.navigationItem.hidesBackButton = YES;
Nie zapominaj, że musisz wywołać go na obiekcie, który ma kontroler nawigacyjny. Na przykład, jeśli kontroler nawigacyjny naciska na kontroler paska kart za pomocą RootViewController, wywołanie self.navigationItem.hidesBackButton = YES
RootViewController nic nie zrobi. Będziesz musiał zadzwonićself.tabBarController.navigationItem.hidesBackButton = YES
Nie zapominaj, że mamy teraz gest przesunięcia do tyłu. Prawdopodobnie chcesz to również usunąć. Nie zapomnij włączyć go ponownie, jeśli to konieczne.
if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
self.navigationItem.hidesBackButton = YES;
}
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
Dodaj ten kod do kontrolera widoku
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
Dla mnie żadne z powyższych nie działało, nie miało żadnego efektu wizualnego. Używam scenariuszy z widokiem „osadzonym” w kontrolerze nawigacyjnym.
Następnie na poziomie kodu dodaję moje menuItems iz jakiegoś powodu „backButton” jest widoczny podczas wizualnego debugowania hierarchii widoków, a moja ikona menuItem jest wyświetlana pod niewidocznym „przyciskiem wstecz”.
Próbowałem ustawień, jak zasugerowano przy różnych metodach zaczepiania i to nie miało żadnego efektu. Potem spróbowałem bardziej brutalnego podejścia i powtórzyłem subview, który również nie przyniósł efektu.
Sprawdziłem rozmiary moich ikon i wyglądałem dobrze. Po zapoznaniu się z wytycznymi Apple Human Interface Guideline potwierdziłem, że moje ikony są prawidłowe. (1 piksel mniejszy w moim przypadku 24px 48px 72px).
Najdziwniejsza część to faktyczna poprawka ...
Dodając element BarButton, nadaj mu tytuł z co najmniej jednym znakiem , w moim przypadku spacją.
Mam nadzieję, że to komuś pomoże.
//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX
style:UIBarButtonItemStylePlain
target:self
action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];
[self.navigationItem setLeftBarButtonItem:leftButtonItem];
Spróbuj tego -
self.navigationController?.navigationItem.hidesBackButton = true
W języku c # lub Xamarin.ios this.NavigationItem.HidesBackButton = true;
navigationItem.leftBarButtonItem = nil
navigationItem.hidesBackButton = true
jeśli użyjesz tego bloku kodu w didLoad lub loadView działało, ale nie działało idealnie. Jeśli przyjrzysz się uważnie, zobaczysz, że przycisk Wstecz ukrywa się, gdy twój widok się załaduje.
Jakie jest idealne rozwiązanie?
Dodaj składnik BarButtonItem z componentView (Command + Shift + L) do paska docelowego viewControllers.
Wybierz BarButtonItem set Title = "" z prawego panelu