Programing

iPhone의 탐색 모음에서 '뒤로'버튼을 숨기는 방법?

lottogame 2020. 3. 11. 00:39
반응형

iPhone의 탐색 모음에서 '뒤로'버튼을 숨기는 방법?


내 앱에서보기 간을 전환하기 위해 탐색 컨트롤을 추가했습니다. 그러나 일부보기에는 '뒤로'(이전 제목) 버튼이 없어야합니다. 뒤로 버튼을 숨기는 방법에 대한 아이디어가 있습니까?


목표 -C :
self.navigationItem.hidesBackButton = YES;

빠른:
navigationItem.hidesBackButton = true


가장 좋은 방법은 이들을 결합하는 것이므로 수동으로 설정하더라도 뒤로 버튼이 숨겨집니다.

self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;

벨로우즈 코드가있는 뒤로 버튼 숨기기 ...

[self.navigationItem setHidesBackButton:YES animated:YES];

또는

[self.navigationItem setHidesBackButton:YES];

또한 사용자 정의가 있으면 UINavigationBar벨로우즈 코드를 사용해보십시오.

self.navigationItem.leftBarButtonItem = nil;

코드를 사용하십시오 :

 self.navigationItem.backBarButtonItem=nil;

에서 스위프트 :

이것을 컨트롤러에 추가하십시오

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.setHidesBackButton(true, animated: false)
}

UIViewController의 viewDidLoad 함수에서 다음 코드를 사용하십시오.

self.navigationItem.hidesBackButton = YES;

네비게이션 컨트롤러가있는 객체에서 호출해야한다는 것을 잊지 마십시오. 예를 들어, 내비게이션 컨트롤러가 RootViewController로 탭 바 컨트롤러를 밀고 있으면 RootViewController를 호출 self.navigationItem.hidesBackButton = YES해도 아무런 변화가 없습니다. 실제로 전화해야합니다self.tabBarController.navigationItem.hidesBackButton = YES


지금 슬라이드 투 백 제스처가 있다는 것을 잊지 마십시오. 아마도 이것을 제거하고 싶을 것입니다. 필요한 경우 다시 활성화하는 것을 잊지 마십시오.

if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
    self.navigationItem.hidesBackButton = YES;
}

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

이 코드를 뷰 컨트롤러에 추가

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;

나에게 위의 어느 것도 효과가없는 것처럼 보였지만 시각적 효과는 없었습니다. 네비게이션 컨트롤러에 "내장"된보기가있는 스토리 보드를 사용하고 있습니다.

그런 다음 코드 수준에서 menuItems를 추가하면 어떤 이유로 든보기 계층 구조를 시각적으로 디버깅 할 때 "backButton"이 표시되고 메뉴 항목 아이콘이 보이지 않는 "back button"아래에 표시됩니다.

다양한 후크 방법에서 제안한대로 설정을 시도했지만 아무런 효과가 없었습니다. 그런 다음 더 잔인한 접근 방식을 시도하고 효과가없는 하위 견해를 반복했습니다.

아이콘 크기를 검사 한 후 문제가없는 것으로 보입니다. 애플 휴먼 인터페이스 가이드 라인을 참조한 후 아이콘이 올바른지 확인했습니다. (필자의 경우 24px 48px 72px에서 1 픽셀 작음).

가장 이상한 부분은 실제 수정입니다 ...

BarButton 항목을 추가 할 때 적어도 하나의 문자가있는 제목을 지정하십시오 . 제 경우에는 공백 문자입니다.

이것이 누군가를 돕기를 바랍니다.

//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];

내가 설정할 때 모든 경우에 나를 위해 작동하지 않았습니다

self.navigationItem.hidesBackButton = YES;

viewWillAppear 또는 ViewDidLoad에 있지만 viewController의 init에 설정하면 완벽하게 작동합니다.


이걸로 해봐 - self.navigationController?.navigationItem.hidesBackButton = true


c # 또는 Xamarin.ios에서 this.NavigationItem.HidesBackButton = true;

참고 URL : https://stackoverflow.com/questions/614212/how-to-hide-back-button-on-navigation-bar-on-iphone

반응형