iPhone에서 내비게이션 바에서 '뒤로'버튼을 숨기는 방법?
-
03-07-2019 - |
문제
내 앱의 뷰 사이를 전환하기 위해 탐색 제어를 추가했습니다. 그러나 일부보기에는 '백'(이전 제목) 버튼이 없어야합니다. 뒤로 버튼을 숨기는 방법에 대한 아이디어가 있습니까?
해결책
대상 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의 function viewDidload에서 코드를 사용합니다.
self.navigationItem.hidesBackButton = YES;
NAV 컨트롤러가있는 객체에서 호출해야한다는 것을 잊지 마십시오. 예를 들어, NAV 컨트롤러가 rootViewController를 사용하여 탭 바 컨트롤러를 밀고있는 경우 self.navigationItem.hidesBackButton = YES
RootViewController에서는 아무것도하지 않습니다. 실제로 전화해야합니다 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;
}
View Controller 에이 코드를 추가하십시오
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
위의 어느 것도 효과가없는 것처럼 보이지만 시각적 효과가 없었습니다. 내비게이션 컨트롤러에 "내장 된"뷰가있는 스토리 보드를 사용하고 있습니다.
그런 다음 코드 레벨에서 내 menuitems를 추가하고 어떤 이유로 뷰 계층 구조를 시각적으로 디버깅 할 때 "backbutton"이 보이고, 내 menuitem 아이콘이 보이지 않는 "뒤로 버튼"아래에 표시됩니다.
다양한 후크 방법에서 제안한대로 설정을 시도했지만 효과가 없었습니다. 그런 다음 더 잔인한 접근 방식을 시도하고 효과가없는 하위 뷰를 반복했습니다.
아이콘 크기를 검사하고 괜찮은 것처럼 보였습니다. He Apple Human Interface Guideline을 언급 한 후 아이콘이 정확하다는 것을 확인했습니다. (내 경우에는 1 픽셀 더 작은 24px 48px 72px).
가장 이상한 부분은 실제 수정입니다 ...
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 = 예;
ViewWillAppear 또는 ViewDidload에서는 ViewController의 init에서 설정할 때 완벽하게 작동했습니다.
이거 한번 해봐 -self.navigationController?.navigationItem.hidesBackButton = true
c# 또는 xamarin.ios에서 this.navigationitem.hidesbackbutton = true;