UI 탐색 모음에 단추를 추가하는 방법은 무엇입니까?
프로그래밍 방식으로 UI 탐색 모음에 버튼을 추가하는 방법은 무엇입니까?
설정하기 위한 샘플 코드rightbutton
에서NavigationBar
.
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone target:nil action:nil];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Title"];
item.rightBarButtonItem = rightButton;
item.hidesBackButton = YES;
[bar pushNavigationItem:item animated:NO];
하지만 보통은 당신이 가지고 있을 것입니다.NavigationController
다음을 쓸 수
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.rightBarButtonItem = rightButton;
위의 답변은 좋지만 몇 가지 팁을 더 제공해 드리고 싶습니다.
뒤로 단추의 제목(탐색 막대 왼쪽에 있는 화살표 모양)을 수정하려면 표시할 보기 컨트롤러가 아닌 이전 보기 컨트롤러에서 이 작업을 수행해야 합니다.마치 "이 보기 컨트롤러 위에 다른 보기 컨트롤러를 누른 경우 기본값 대신 뒤로 버튼(또는 기타)을 "뒤로"라고 부르십시오."라고 말하는 것과 같습니다.
UIPickerView가 표시되는 동안과 같은 특수 상태에서 뒤로 단추를 숨기려면 다음을 사용합니다.self.navigationItem.hidesBackButton = YES;
그리고 특별한 상태를 떠날 때 그것을 뒤로 돌려놓는 것을 기억하세요.
특수 기호 단추 중 하나를 표시하려면 다음 양식을 사용합니다.initWithBarButtonSystemItem:target:action
와 같은 가치가 있는UIBarButtonSystemItemAdd
이 기호의 의미는 사용자에게 달려 있지만 휴먼 인터페이스 가이드라인을 주의해야 합니다.UIBarButtonSystemItemAdd를 사용하여 항목을 삭제하면 응용 프로그램이 거부될 수 있습니다.
탐색 모음에 사용자 정의 버튼 추가(버튼용 이미지 포함)항목 및 작업 방법(void)을 지정하면 View{} 및)가 열립니다.
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 32, 32);
[button setImage:[UIImage imageNamed:@"settings_b.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(openView) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barButton=[[UIBarButtonItem alloc] init];
[barButton setCustomView:button];
self.navigationItem.rightBarButtonItem=barButton;
[button release];
[barButton release];
아래 예제에서는 오른쪽 탐색 모음에 "연락처"라는 제목의 단추를 표시합니다.이 작업은 뷰 컨트롤러에서 "연락처"라는 이름의 메서드를 호출합니다.이 라인이 없으면 오른쪽 버튼이 표시되지 않습니다.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Contact"
style:UIBarButtonItemStylePlain target:self action:@selector(contact:)];;
Swift 2에서는 다음을 수행할 수 있습니다.
let rightButton: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: nil, action: nil)
self.navigationItem.rightBarButtonItem = rightButton
(큰 변화는 아님) Swift 4/5에서 다음과 같습니다.
let rightButton: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItem.Style.done, target: nil, action: nil)
self.navigationItem.rightBarButtonItem = rightButton
다음을 사용하지 않는 이유: (iPhone 탐색 모음의 사용자 지정 뒤로 버튼 그리기)
// Add left
UINavigationItem *previousItem = [[UINavigationItem alloc] initWithTitle:@"Back title"];
UINavigationItem *currentItem = [[UINavigationItem alloc] initWithTitle:@"Main Title"];
[self.navigationController.navigationBar setItems:[NSArray arrayWithObjects:previousItem, currentItem, nil] animated:YES];
// set the delegate to self
[self.navigationController.navigationBar setDelegate:self];
swift 3
let cancelBarButton = UIBarButtonItem(title: "Cancel", style: .done, target: self, action: #selector(cancelPressed(_:)))
cancelBarButton.setTitleTextAttributes( [NSFontAttributeName : UIFont.cancelBarButtonFont(),
NSForegroundColorAttributeName : UIColor.white], for: .normal)
self.navigationItem.leftBarButtonItem = cancelBarButton
func cancelPressed(_ sender: UIBarButtonItem ) {
self.dismiss(animated: true, completion: nil)
}
언급URL : https://stackoverflow.com/questions/2504351/how-to-add-a-button-to-uinavigationbar
'programing' 카테고리의 다른 글
npm을 사용하여 앱의 종속성을 어떻게 다시 설치합니까? (0) | 2023.05.23 |
---|---|
앱스토어에서 애플리케이션에 대한 올바른 'aps-environment' 자격 문자열을 찾을 수 없습니다. (0) | 2023.05.23 |
VB.NET - 문자열에 "value1" 또는 "value2"가 포함된 경우 (0) | 2023.05.23 |
제공된 잠금이 잘못되었습니다.잠금이 만료되었거나 메시지가 대기열에서 이미 제거되었습니다. (0) | 2023.05.23 |
VB.NET에서 Enter 키를 누르는 중 (0) | 2023.05.23 |