programing

UI 탐색 모음에 단추를 추가하는 방법은 무엇입니까?

padding 2023. 5. 23. 21:37
반응형

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

반응형