2014-08-31 3 views
1

단추가 스토리 보드에서 만들어 졌으므로 작업을 추가하고 싶습니다.UIBarButtonItem Swift에 작업 추가

self.cancel.action = NSSelectorFromString("cancel:") 

func cancel(sender: UIBarButtonItem) ->() { 
} 

이것은 작동하지 않습니다. 감사합니다

+0

SOF에 오신 것을 환영합니다. 그것이 당신을 도운다면 대답을 받아 들일 수 있는지 확인하십시오. – Mundi

답변

2

광산을 참조하십시오.

  1. UIBarbuttonitem에 UIButton 추가.

    self.navigationController?.navigationBarHidden = false 
    
    //making a button 
    var button: UIButton = UIButton() 
    button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal) 
    button.frame = CGRectMake(0, 0, 25, 25) 
    button.targetForAction("actioncall", withSender: self) 
    button.addTarget(self, action: "actioncall", forControlEvents: UIControlEvents.TouchUpInside) 
    
    //making a UIBarbuttonItem on UINavigationBar 
    var rightItem:UIBarButtonItem = UIBarButtonItem() 
    rightItem.customView = button   
    self.navigationItem.rightBarButtonItem = rightItem 
    
  2. UIBarButtonItem

    let rightNavItem = UIBarButtonItem(image: UIImage(named: "search1x"), landscapeImagePhone: nil, style: UIBarButtonItemStyle.Plain, target: self, action: "actioncall") 
    navigationItem.rightBarButtonItem = rightNavItem 
    
  3. 또는

    let rightNavItem = UIBarButtonItem() 
    rightNavItem.action = "action call" 
    
    
    //Anticipated Method on clicking uibarbuttonitem 
    func actioncall(){ 
    } 
    
7

그냥 다음

@IBAction func cancel() { 
    // your code 
} 

처럼 신속 클래스에서 함수를 작성하고 Ctrl 키를 누른 상태에서 드래그하여 뷰 컨트롤러의 버튼에서에서 스토리 보드에 연결합니다.

+0

감사합니다. 완벽하게 프로그래밍을 원한다고 생각합니다. =) 이 작동 테스트 후 : self.cancel.action = 선택기 ("취소") 이 FUNC 취소 (보낸 사람 : UIBarButtonItem) ->() { } –

+0

이 적은 코드를 작성하는 것이 좋습니다. 위로 투표 해 주셔서 감사합니다. – Mundi

+0

그게 사실이지만 다른 개발자와 스토리 보드를 공유하는 것이 어렵다는 것을 알았습니다. Git (또는 버전 제어 시스템)에서 동일한 스토리 보드에 대한 두 사람의 변경 사항을 병합하는 것은 끔찍한 일입니다. 내 대답은 내가 할 수있는 곳에서 코드를 사용하는 것이 었습니다. – dumbledad

0
@IBAction func action() { 
    // your code 
}  

    var button = UIButton.buttonWithType(UIButtonType.System) as UIButton 
    button.frame = CGRectMake(100, 100, 100, 50) 
    button.backgroundColor = UIColor.greenColor() 
    button.setTitle("Button", forState: UIControlState.Normal) 
    button.addTarget(self, action: "action", forControlEvents: UIControlEvents.TouchUpInside) 
    self.view.addSubview(button) 
0

초기화를 또는 선택은 다른 클래스에있는 경우

let barBtn = UIBarButtonItem(title: nil, style: UIBarButtonItemStyle.Plain, target: self, action: #selector(CustomToolbarItemsClass.testSelector)) 


//This is in CustomToolbarItemsClass class 
@objc static func testSelector(){ 
print("Hello!") 
}