[objective-c] 프로그래밍 방식으로 탐색 모음에 단추 추가

안녕하세요, 탐색 표시 줄의 오른쪽에있는 버튼을 프로그래밍 방식으로 설정해야합니다. 버튼을 누르면 몇 가지 작업을 수행 할 수 있습니다. 프로그래밍 방식으로 탐색 모음을 만들었습니다.

navBar=[[UINavigationBar alloc]initWithFrame:CGRectMake(0,0,320,44) ];

마찬가지로이 탐색 모음의 오른쪽에 버튼을 추가해야합니다. 내가 사용한 것을 위해

1.  

    UIView* container = [[UIView alloc] init];

    // create a button and add it to the container
    UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 130, 44.01)];
    [container addSubview:button];
    [button release];

    // add another button
    button = [[UIButton alloc] initWithFrame:CGRectMake(160, 0, 50, 44.01)];
    [container addSubview:button];
    [button release];

    // now create a Bar button item
    UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:container];

    // set the nav bar's right button item
    self.navigationItem.rightBarButtonItem = item;
    [item release];

2.  

    UIImage *im;
    im=[UIImage imageNamed:@"back.png"];
    [button setImage:im forState:UIControlStateNormal];
    [im release];
    backButton = [[UIBarButtonItem alloc] initWithCustomView:button];
    [backButton setImageInsets:UIEdgeInsetsMake(0, -10,5, 5)];
    [self.navigationItem setRightBarButtonItem:backButton];

삼.  

    UIBarButtonItem *refreshItem = [[UIBarButtonItem alloc] initWithTitle:@"button"               style:UIBarButtonItemStylePlain target:self action:@selector(refreshLogsAction:)];
    self.navigationItem.rightBarButtonItem = refreshItem;

    [refreshItem release];

이 모든 방법을 시도했지만 오른쪽에 버튼이 표시되지 않습니다.



답변

UIViewController파생 클래스 내 에서 다음을 사용하고 있습니다 viewDidLoad.

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc]
                               initWithTitle:@"Flip"
                               style:UIBarButtonItemStyleBordered
                               target:self
                               action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
[flipButton release];

이렇게하면 제목이 Flip 인 오른쪽에 메서드를 호출하는 버튼이 추가됩니다.

-(IBAction)flipView

이것은 # 3과 매우 비슷해 보이지만 내 코드 내에서 작동합니다.


답변

UIImage* image3 = [UIImage imageNamed:@"back_button.png"];
CGRect frameimg = CGRectMake(15,5, 25,25);

UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg];
[someButton setBackgroundImage:image3 forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(Back_btn:)
     forControlEvents:UIControlEventTouchUpInside];
[someButton setShowsTouchWhenHighlighted:YES];

UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navigationItem.leftBarButtonItem =mailbutton;
[someButton release];

///// 호출 된 이벤트

-(IBAction)Back_btn:(id)sender
{
    //Your code here
}

빠른:

var image3 = UIImage(named: "back_button.png")
var frameimg = CGRect(x: 15, y: 5, width: 25, height: 25)

var someButton = UIButton(frame: frameimg)
someButton.setBackgroundImage(image3, for: .normal)
someButton.addTarget(self, action: Selector("Back_btn:"), for: .touchUpInside)
someButton.showsTouchWhenHighlighted = true

var mailbutton = UIBarButtonItem(customView: someButton)
navigationItem?.leftBarButtonItem = mailbutton

func back_btn(_ sender: Any) {
    //Your code here
}


답변

탐색 모음에 검색 버튼을 추가하려면 다음 코드를 사용하세요.

 UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(toggleSearch:)];
self.navigationController.navigationBar.topItem.rightBarButtonItem = searchButton;

다음 방법을 구현하십시오.

- (IBAction)toggleSearch:(id)sender
{
    // do something or handle Search Button Action.
}


답변

신속하게 navbar에 추가 버튼을 추가하는 방법 :

self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "onAdd:")

onAdd :

func onAdd(sender: AnyObject) {
}


답변

self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc]initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction:)]autorelease];

-(void)saveAction:(UIBarButtonItem *)sender{

//perform your action

}


답변

Swift 버전, viewDidLoad에 추가하십시오.

var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneButton:")
navigationItem.rightBarButtonItem = doneButton

그리고 이것은 View Controller 클래스에서

func doneButton(sender: UIBarButtonItem) {
    println(111)
}


답변

다음 코드를 사용하십시오.

UIBarButtonItem *customBtn=[[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStylePlain target:self action:@selector(customBtnPressed)];
[self.navigationItem setRightBarButtonItem:customBtn];