문제

나는 내 문제를 설명하려고 노력한다.AppDelegate에서 비동기 요청의 결과에 따라 rootViewController를 선택해야합니다 (AfnetWorking 프레임 워크를 사용하고 있습니다).사실, 사용자가 프로파일 링되었는지 여부를 알아야합니다. 그가 프로파일 링되면 앱의 집을 보여줄 수 있습니다.

스토리 보드의 홈 뷰를 지정된 진입 점으로 설정했지만이 방법 으로이보기는 비동기 요청이 완료 될 때까지 항상 표시됩니다.acpdelegate가 응답을 기다릴 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

네트워크 연결이 열악한 경우 앱로드 시간이 매우 길고 OS가 앱을 죽일 수 있거나 사용자가 꺼낼 수 있으므로 앱을 끌 수 있기 때문에 응답을 기다릴 수있는 솔루션이 없습니다.P>

일부 로딩 뷰 컨트롤러 (애니메이션 포함)는 사용자가 홈 대신에 사용자가 앱이 아는 것을 알고 사용자에게 적절한보기를받을 때 (MODAL SEGUE가 작업을 수행 할 수 있음)을 추가 할 수 있습니다. 희망이 도움이

다른 팁

더 나은 해결책은 스플래시 화면을 사용하는 것입니다.이는 앱이 AppDelegate에로드되면 스플래시 뷰 컨트롤러를 만들고 밀어 넣습니다.이는 응용 프로그램 스플래시 이미지를 보여주는 전체 화면을 다루는 단일 UIImageView를 포함 할 것입니다.비동기식 호출 완료시 팝업 컨트롤러를 팝하고 필요한 뷰 컨트롤러를 푸시하십시오.

많은 앱 이이 방법을 사용하여 앱을 보여주기 전에 필요한 비동기 데이터를 다운로드합니다.따라서 사용자가 빈 화면이나 가비지 데이터가 표시되지 않습니다.

인터넷 연결 실패 또는 서버 응답 오류 등과 같이 무언가가 실패한 경우 사용자에게 오류를 표시하고 앱 논리에 따라 오류 처리를 수행하십시오.

루트 뷰 컨트롤러로 프로그래밍 방식으로

로 이동할 수 있습니다.
[self.navigationController popToRootViewControllerAnimated:YES];
.

이 코드는 결과의 조건에 놓일 수 있습니다.

또는 귀하의 방식으로, rootViewController에 대한 탐색을위한 세그리가 생성된다고 생각합니다.

를 사용하여 프로그래밍 방식으로 세그리를 수행 할 수 있습니다.
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
.

AFNetworking을 사용하는 경우 성공 블록에 메서드를 추가하고 해당 메서드에 대한 응답을 사전 매개 변수로 전달하십시오.메소드에서 응답을 확인하고 루트 뷰 컨트롤러를 해당 메서드로 만드는 컨트롤러를 선택하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top