답변:
방금 컨트롤러에서 이것을 사용하여 답을 찾았습니다.
[self.navigationItem setHidesBackButton:YES animated:YES];
그리고 그것을 복원하려면 :
[self.navigationItem setHidesBackButton:NO animated:YES];
-
[최신 정보]
스위프트 3.0 :
self.navigationItem.setHidesBackButton(true, animated:true)
viewWillAppear:animated
숨기고 viewWillDisappear:animated
복원하는 것입니다.
뒤로 버튼을 제거하는 것 외에도 (이미 권장 된 방법 사용) 사용자가 iOS 7 이상에서 왼쪽에서 오른쪽으로 스 와이프 동작으로 이전 화면으로 '팝'할 수 있다는 것을 잊지 마십시오.
이를 비활성화하려면 (적절한 경우) 다음을 구현하십시오 (예 : viewDidLoad).
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
기존 답변을 명확하게 설명하기 위해 : hidesBackButton
속성은 정답이지만 많은 답변에서 self
언급하는 내용이 명확하지 않습니다 . 기본적으로 self.navigationItem.hidesBackButton = YES
뷰 컨트롤러에서 으로 푸시 (또는 푸시)하려고 설정해야 합니다 UINavigationController
.
다시 말해, UINavigationController
이름이이라고 myNavController
합니다. 나는 그것에 새로운 견해를 넣고 싶다. 그리고 내가 할 때 뒤로 버튼이 더 이상 표시되기를 원하지 않는다. 나는 다음과 같은 것을 할 수있다 :
UIViewController *newVC = [[UIViewController alloc] init];
//presumably would do some stuff here to set up the new view controller
newVC.navigationItem.hidesBackButton = YES;
[myNavController pushViewController:newVC animated:YES];
코드가 완료되면에 의해 제어되는보기 newVC
가 표시되고 뒤로 버튼이 표시되지 않아야합니다.
조건부로 뒤로 버튼을 숨기거나 표시하려면 다음 코드를 사용할 수 있습니다.
-(void)viewDidAppear:(BOOL)animated
{
if ([tempAry count]==0)
{
[self.navigationItem setHidesBackButton:YES animated:YES];
}
else
{
[self.navigationItem setHidesBackButton:NO animated:YES];
}
[super viewDidAppear:animated];
}
참고 : 경우에 따라 viewWillAppear 대신 viewDidAppear 메서드에 배치해야합니다. 다음 클래스의 배열을 이전 클래스로 업데이트 한 다음 위의 클래스와 조건을 확인하는 경우.
스위프트 iOS (다음과 같이 사용했습니다)
// hide back button
self.navigationItem.setHidesBackButton(true, animated: false)
// pgrm mark ----- ------
// hide the back button for this view controller
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
self.navigationItem.setHidesBackButton(editing, animated: animated)
}// end setEditing
어떤 이유로 sethidesbackbutton이 작동하지 않았습니다.
나는이 방법을 사용했다->
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, 30)]] ;
간단하고 가벼운 간단한 문제에 대해서는 항상 Apple 설명서를 사용하십시오. :)
Swift 3.0의 구문은 다음과 같습니다.
self.navigationItem.setHidesBackButton(true, animated:true)
참고
제 경우에는 현재 답변에 거의 문제가 없었습니다.
그래서 마침내 나를 위해 일한 해결책은 다음과 같습니다.
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self.navigationItem setHidesBackButton:YES animated:NO];
}
return self;
}
Zoran Simic의 제안에 따르면 어떤 이유로 든 작동하지 않았습니다.
그러나이 코드는 작동했습니다.
MyController* controller = [[MyController alloc] init];
NSArray* array = [[[NSArray alloc] initWithObjects:controller, nil] autorelease];
[self.navigationController setViewControllers:array animated:NO];
[controller release];
분명히 NSArray를 자신의 취향에 맞게 조작하여 효과가 있어야합니다. 누군가를 돕는 희망 :)
뒤로 버튼을 숨기고 Swift에서 추가 버튼으로 바꿉니다.
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
// This hides the back button while in editing mode, which makes room for an add item button
self.navigationItem.setHidesBackButton(editing, animated: animated)
if editing {
// This adds the add item button
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
// Use the animated setter for the left button so that add button fades in while the back button fades out
self.navigationItem.setLeftBarButton(addButton, animated: animated)
self.enableBackGesture(enabled: false)
} else {
// This removes the add item button
self.navigationItem.setLeftBarButton(nil, animated: animated)
self.enableBackGesture(enabled: true)
}
}
func enableBackGesture(enabled: Bool) {
// In addition to removing the back button and adding the add item button while in edit mode, the user can still exit to the previous screen with a left-to-right swipe gesture in iOS 7 and later. This code disables this action while in edit mode.
if let navigationController = self.navigationController {
if let interactivePopGestureRecognizer = navigationController.interactivePopGestureRecognizer {
interactivePopGestureRecognizer.isEnabled = enabled
}
}
}
setHidesBackButton:
navigationItem을 navigationController로 푸시하기 전에 전화해야합니다 .