UINavigationBar에 버튼을 추가하는 방법?
프로그래밍 방식으로 UINavigationBar에 버튼을 추가하는 방법은 무엇입니까?
샘플 코드를 설정 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를 사용하여 삭제하면 응용 프로그램이 거부 할 수 있습니다.
탐색 모음에 사용자 정의 단추 추가 (buttonItem 이미지 포함 및 조치 방법 지정 (void) openView {} 및).
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];
아래 예는 오른쪽 탐색 표시 줄에 제목이 "Contact"인 버튼을 표시합니다. 이 작업은 뷰 컨트롤러에서 "contact"라는 메서드를 호출합니다. 이 줄이 발음 버튼이 발음합니다.
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];
스위프트 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
'IT' 카테고리의 다른 글
Mockito의 예외를 조롱하고 주장하는 방법? (0) | 2020.07.21 |
---|---|
jquery에서 배경색을 설정하는 방법 (0) | 2020.07.21 |
클릭 후 알림 제거 (0) | 2020.07.21 |
cron 작업이 아직 실행되고 있지 않은 경우에만 실행하십시오. (0) | 2020.07.21 |
GUID 충돌이 가능합니까? (0) | 2020.07.21 |