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
그러면 Bellow code를 사용해 보세요.
self.navigationItem.leftBarButtonItem = nil;
Swift의 경우:
컨트롤러에 추가
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated: false)
}
코드 사용:
self.navigationItem.backBarButtonItem=nil;
UIViewController의 함수 viewDidLoad에서는 다음 코드를 사용합니다.
self.navigationItem.hidesBackButton = YES;
네비게이션 컨트롤러가 있는 오브젝트에서 호출해야 한다는 것을 잊지 마세요.예를 들어, RootViewController를 사용하여 탭바 컨트롤러를 푸시하는 네비게이션컨트롤러가 있는 경우,self.navigationItem.hidesBackButton = YES
RootViewController는 아무것도 하지 않습니다.전화해야 할 것 같아요self.tabBarController.navigationItem.hidesBackButton = YES
뷰 컨트롤러에 이 코드 추가
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
슬라이드 투 백 제스처가 있다는 것을 잊지 마세요.이것도 삭제하는 것이 좋을 것 같습니다.필요한 경우 다시 활성화하는 것을 잊지 마십시오.
if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
self.navigationItem.hidesBackButton = YES;
}
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
저는 위의 어느 것도 효과가 없는 것 같았고 시각적인 효과도 없었습니다.내비게이션 컨트롤러에 내장된 뷰가 있는 스토리보드를 사용하고 있습니다.
그런 다음 코드 레벨에서 menuItems를 추가하면 뷰 계층을 시각적으로 디버깅할 때 "backButton"이 표시되며 menuItem 아이콘이 보이지 않는 "back button" 아래에 표시됩니다.
여러 가지 후크 방식으로 세팅을 해봤지만 효과가 없었습니다.그리고 나서 나는 좀 더 잔혹한 접근을 시도했고 하위 뷰를 반복했지만 역시 효과가 없었다.
아이콘 사이즈를 확인했더니 괜찮은 것 같아요.애플 휴먼 인터페이스 가이드라인을 참조한 후 제 아이콘이 맞다는 것을 확인하였습니다. (내 경우 24px48px72px는 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;
viewController 초기화 시 설정했을 때 완벽하게 동작했습니다.
먹어봐 - 이거 먹어봐 -self.navigationController?.navigationItem.hidesBackButton = true
c# 또는 Xamarin.ios 의 경우는, 다음과 같습니다.Navigation Item(네비게이션 항목)HiddesBackButton = 참;
navigationItem.leftBarButtonItem = nil
navigationItem.hidesBackButton = true
didLoad 또는 loadView에서 이 코드 블록을 사용하는 경우 동작했지만 완벽하게 동작하지는 않았습니다.주의 깊게 보면 뷰 로드 시 뒤로 버튼이 숨겨져 있는 것을 알 수 있습니다.이상하게 생겼네.
완벽한 해결책은 무엇일까요?
componentView(Command + Shift + L)의 BarButtonItem 구성 요소를 대상 뷰컨트롤러 네비게이션 바에 추가합니다.
오른쪽 패널에서 BarButtonItem set Title = "을 선택합니다.
self.navigationItem.setHidesBackButton(true, animated: true)
언급URL : https://stackoverflow.com/questions/614212/how-to-hide-back-button-on-navigation-bar-on-iphone
'programing' 카테고리의 다른 글
@size와 @dynamic의 차이점은 무엇입니까? (0) | 2023.04.14 |
---|---|
버튼 클릭 이벤트에 매개 변수 추가 (0) | 2023.04.14 |
Excel에서 시간 필드를 문자열로 변환 (0) | 2023.04.14 |
SQL Join: 1대 다 관계에서 마지막 레코드 선택 (0) | 2023.04.14 |
Excel로의 JSON Import (0) | 2023.04.14 |