2016-10-20 3 views
0

런타임 중에 UIBarButtonItem 텍스트를 "깔끔하게"변경하려고하므로 편집/완료 모드를 전환 할 수 있습니다. 그러나 런타임 중에 title 속성을 변경할 때마다 애니메이션이 어색해 보입니다. 주소록 앱의 편집/완료 버튼의 모양과 기능을 에뮬레이트하려고합니다 (편집이 사라지고 완료 됨).런타임 동안 UIBarButtonItem 텍스트를 "깔끔하게"변경하는 방법 (편집 -> 완료 -> 편집)?

@IBAction func editDoneButtonPressed(sender: UIBarButtonItem) { 

    if(sender.title == "Edit"){ 
     sender.title = "Done" 
    }else{ 
     sender.title = "Edit" 
    } 

} 

초기 설정 : 식별자가 "사용자 정의"로 설정하고 제목이 "편집"

간단한 programatical 솔루션은 그러나, 애니메이션의 모습이 참으로 중요하다, 선호하도록 설정되어 있습니다. 나는 텍스트 속성보다는 UIBarButtonItem 식별자를 토글하는 것을 고려할 것이다. 그러나 런타임 동안 식별자를 토글하는 우아한 방법은 확실하지 않다.

현재 : Swift를 사용하여 앱을 구성하고 있습니다.

링크로 ... 연락처 응용 프로그램 편집의

스크린 캐스트/애니메이션 토글 완료 : 내 편집의 https://youtu.be/5mT_vzpNhIw

스크린 캐스트/애니메이션 토글 완료 : https://youtu.be/mEweotJNVNE

감사합니다.

+0

쇼 :

다음, 대신 자신의 행동을 설정, 단순히 setEditing(_:animated:) 메소드를 오버라이드 (override). – rmaddy

+0

편집 버튼을 만들고 설정하는 데 사용되는 코드로 질문을 업데이트해야한다는 말입니다. – rmaddy

+0

편집 버튼을 설정하는 데 사용 된 코드가 없습니다. 그것은 드래그 앤 드롭 방식으로 탐색 바에 나타납니다. 고맙습니다. – HumbleOne

답변

2

표준 방법 인 편집/완료 버튼을 사용하는 것이 훨씬 더 좋습니다.

UIViewController은 이미보기 컨트롤러의 editing 속성에 연결되어있는 표준 편집/완료 버튼을 제공합니다. 다음과 같이

일반적인 사용법은 다음과 같습니다 당신이 실제로 필요할 때마다

self.navigationItem.rightBarButtonItem = editButtonItem 

editButtonItem을 넣어 :보기 컨트롤러의 viewDidLoad 방법 내부

가 표준 버튼을 사용합니다. 어떻게 설정이 바 버튼 항목

override func setEditing(_ editing: Bool, animated: Bool) { 
    super.setEditing(editing, animated: animated) 

    if (editing) { 
     // user just tapped the Edit button (it now says Done) 
    } else { 
     // user just tapped the Done button (it now says Edit) 
    } 
} 
+0

1.이 표준화 된 버튼을 탐색 표시 줄에 추가 할 수 있습니까? – HumbleOne

+0

2. 내가 만난 부조화 한 애니메이션을 정리할 수 있습니까? – HumbleOne

+0

1. 이것이 내 대답의 코드입니다. 탐색 모음의 오른쪽에 단추를 추가합니다. 2. 가능성이 가장 높습니다. 그것은 당신이'setEditing' 메쏘드 안에서 무엇을하는지에 달려 있습니다. – rmaddy