3

iOS에서 내비게이션 컨트롤러로 탐색 (푸시)하고 viewDidLoad에서 요청을 시작합니다. 이 요청을 처리하는 데 시간이 오래 걸릴 수 있으며 사용자가 요청을 기다리지 않으려면 다시 돌아갈 수 있어야합니다.뒤로 버튼이 비활성화 된 것 같습니다. iOS

요청이 완료 될 때까지 탐색 모음에 추가 된 뒤로 버튼이 차단 된 것 같습니다. 버튼은 사용자 상호 작용을 기억하고 요청이 완료되면 자동으로 되돌아갑니다.

요청에 응답을위한 대리자 메소드가 있으며 앱이 해당 메소드에 입장하면 버튼이 일어나서 돌아갑니다.

요청하는 동안 터치하면 터치/클릭 효과가 단추에 나타나지 않으며 요청이 끝날 때도 적용되지 않습니다. 끝날 때까지 기다렸을 때 버튼은 터치되거나 클릭 된 버튼에 대한 일반적인 효과를가집니다.

+0

당신 메인 쓰레드가 요청에 의해 차단이 필요한 경우 }

나를 알려줍니다. 코드 좀 올리세요. –

+0

@fsant 만약 당신이 아래에서 귀하의 답변을 찾았 으면 알려주십시오 – vishiphone

답변

0

이렇게하려면 button 속성을 다음과 같이 설정하면됩니다.

[button setEnable:Yes]; 
[button setEnable:Yes]; 

또한이

[button setuserintractionEnable:no]; 
+0

나는 그게 문제가 아니란 걸 확신합니다. 분명히 버튼 *이 활성화되어 있습니다 (질문에서 알 수 있듯이). –

+0

그렇다면 @Kai가 정확히 무엇을 원하는지 이해하면 질문을 편집하십시오. – vishiphone

+0

나는 뭔가를 편집 할 필요가 있다고 생각하지 않는다. 그것은 완벽하게 설명, 그 버튼이 요청 중에 차단되지만, 그 후에 그것은 작동 ... 그래서 버튼이 분명히 활성화되어 있습니다. –

0

[self performSelectorInBackground:@selector(startRequest) withObject:nil]; 

로 backgroundthread의 요청을 호출하고도 핵심 데이터를 항상 기억하십시오. 이것은 당신의 UI가 rleased 될 것입니다 및 요청이 백그라운드 스레드 에서 작업 한 후 요청을 구현

OBJ를 초기화

의 Obj * OBJ = [[확대 개체의 ALLOC로] initWithDelegate 다시 버튼을 취소 할 것 : 자기 선택기 : @ 선택기 (requestFinished)]; [self performSelectorInBackground : @selector (startRequest :) withObject : obj]; obj에는 SEL selector 및 id delegate 속성이 있습니다.

요청 완료

체크 경우 ([obj.delegate respondsToSelector : obj.selctor]) { [performSelector obj.delegat : obj.selector]; 당신이 더 많은 사양

+0

이 문제는 요청이 끝나고 응답이 도착했을 때 델리게이트가 깨어나지 않았다는 것입니다. – fsantaolaya

+0

@fsantaolaya 질문이 있으면 어디든 가고 싶다면 –

+0

선택기와 대리자가 있고 요청이 콜백을 마친 경우 개체를 보낼 수 있습니다. 나중에 몇 분 후에 편집을 참조하십시오. – Saad

관련 문제