IT

UINavigationBar에 버튼을 추가하는 방법?

lottoking 2020. 7. 21. 07:42
반응형

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

반응형