2011-08-15 4 views
1

주기적으로 업데이트해야하는 레이블이있는 일련의 UIButton (xib에 정의 됨)이 있습니다. 그 버튼 '슈퍼 뷰의 뷰 컨트롤러의 viewDidLoad에 방법에서, 나는 각 버튼에 대한 않는 업데이트 방법이 있습니다xib에서 내 UIButtons는 어떻게됩니까?

button.titleLabel.text = @"Relevant Text"; 
[button setNeedsDisplay]; 

을하고 당신은 버튼, UIAlertView를 팝업 다른 방법의 실행을 누를 때 어떤

button.titleLabel.text = @"New Text"; 
[button setNeedsDisplay]; 

그러나,이 코드는 단순히 작동하지 않는 경우, 단추 레이블의 텍스트가 업데이트되지 않습니다 턴 초기 텍스트 설정 방법으로 거의 같은 일을하는 뷰 컨트롤러의 방법을 다시 호출에 두 가지 방법 중 하나를 선택하면 빈 흰색 단추가 유지됩니다. xib에서는 버튼에 아무 텍스트도 정의하지 않습니다. 런타임에 설정하지 않으면 버튼 텍스트가 의미가 없습니다. 어쨌든, 종달새에 나는 단추 중 하나의 텍스트를 "테스트 테스트 테스트"로 설정하기로 결정했습니다.

이제 특정 버튼을 탭하면 UIAlertView가 팝업되지만 백그라운드에서 버튼의 텍스트가 "테스트 테스트 테스트 테스트"로 변경됩니다. 그리고 시간, UIAlertView 콜백은 내가 기대하는 것을 수행하고 해당 버튼에 대해서만 텍스트를 설정합니다. UIClertView를 닫을 때까지 텍스트가 으로 다시이됩니다. UIAlertView를 닫을 때까지이 메서드는 다시 콜백 메서드를 실행하고 메서드의 내용에 관계없이 단추 텍스트를 설정합니다.

여기에 무슨 일이 일어나고 있는지 또는 xib에 처음 텍스트를 설정하는 것이 나중에 프로그래밍 방식으로 해당 텍스트를 설정할 수 있는지 여부와 관련이없는 이유는 무엇입니까? 분명히 이것은 내가 원하는 동작이 아니므로 버튼에 텍스트를 설정하는 방법을 알고 싶습니다.

편집 : setTitle에 대한 SVD의 조언 : ForState : 해결 된 내 문제, 감사합니다. 여전히 .xib에 설정된 제목 레이블이 표시되는 이유는 궁금하지만 UIAlertView 팝업이있을 때만 알 수 있습니다.

+1

실제로 연결된 버튼 용 콘센트가 있습니까? 그게 아니라고 확신합니까? – jtbandes

답변

2

[setTitle : forState :]를 사용하여 일반 및 강조 표시된 (또는 선택한) 상태의 단추 제목을 설정해야 할 수 있습니다.

(버튼이 콘센트에 연결되어 있는지 확인하십시오. jtbandes가 가리키고 있음).

+0

나는 똑같은 문제가 있었고 [setTitle : forState] 메서드를 사용하여 올바르게 설정했습니다. – MystikSpiral

관련 문제