2012-01-27 2 views
0

시작 화면 (Default.png)으로 열리는 응용 프로그램을 탐색 컨트롤러에서 첫 번째보기 (ViewController1)를로드합니다. 곧바로, ViewController2 (VC2)의 인스턴스가 생성 및 탐색 컨트롤러 푸시됩니다 : 나는 응용 프로그램을 실행할 때다른보기 컨트롤러에서보기 컨트롤러를로드하는 동안 스플래시 화면 표시

[self.navigationController pushViewController:VC2 animated:NO]; 

그래서, 기본 이미지가 표시되고, 다음 ViewController1의보기가 잠시 ViewController2가 표시 될 때까지 로드되고 표시됩니다.

ViewController1의 간단한 표시를 중지하려면 어떻게해야합니까? VC2가 표시 될 때까지 Default.png 표시를 확장하거나 VC2가 표시 될 때까지 ViewController1을 Default.png 이미지로 덮을 수 있습니까?

고마워요.

+0

당신이 스플래시 이미지로있는 UIImageView를 추가 할 수 있습니다 [ 창 addSubview : splashImage]; 코드를 실행하기 직전 [self.navigationController pushViewController : VC2 animated : YES]; 그런 다음 VC2의 viewDiDAppear – samfisher

답변

0

VC1에 Default.png와 함께 UIImageView을 추가 한 다음 viewDidDisappear:에서 제거 할 수 있습니다.

+0

에서 그것을 제거합니다. 내가 단순히 UIImageView를 VC1 (위)에 배치하면 VC2가 VC1의 상위 뷰에 있다고 생각하는 일부 데이터에 VC2가 액세스하기 때문에 오류 (SIGABRT)가 발생합니다. 프로그래밍 방식으로이를 수정하는 방법은 무엇입니까? (아마도 VC1에 UIImageView를 추가하여) –

+0

'UIImageView'를 뒤에 넣고 다른 뷰의 알파를 0으로 설정 한 다음 모든 뷰를 'viewDidDisapear'에서 1로 변경합니다 :'' –

-1

Default.png 동작을 수정할 수 있다고 생각하지 않습니다. ViewController1에서 Default.png를 이미지로 사용하여 UIImageView를 만들 것을 제안합니다. 스크린과 정확히 같은 크기를주고 그것을 완벽하게 커버하는 서브 뷰로 추가하십시오. 그런 식으로 Deafult.png가 두 번 지나서 ViewController2로 보일 것입니다.

1

저는 귀하의 경우에 VC1이 Ad-hoc 스플래시 화면으로 VC1을 시작점으로 삼기를 원합니다. default.png 이미지는 앱의 모양을 미러링하여 앱이 시작하고 표시되는 것보다 빠르게 작동하는 느낌을주는 방법이어야합니다. (이것은 Apple's HIG에서 가져온 것입니다)

VC1을 새로운 스플래시 스크린/로딩 화면으로 만드는 것이 좋습니다. 당신은 간단한 대기 또는 로딩 페이지로 만들 수 있으며, 일단 앱의 모든 것이 처리되면 VC2를로드 할 수 있습니다. Default.png는 로딩 화면의 이미지 일 수 있으며 앱이 즉시로드되고 있다는 느낌을줍니다.

이 문제에 접근하는 방법에 대한 의견이 많이 있습니다. 궁극적으로 귀하와 귀하의 신청에 가장 적합한 방법을 결정해야합니다.

마지막으로 VC2에 직접로드하여로드 진행률보기 만 표시 할 수 있습니다. 나는 정보를로드하거나 기다려야하는 작업을 수행하는 동안 MBProgressHUD을 사용하여 사용자를 잠그기 위해 사용했습니다. 이것은 또 다른 옵션 일 수 있습니다. 희망이 정보는 도움이됩니다.

2

당신이해야 할 유일한 것은 당신이 다음 애니메이션없이 VC2를 밀어 self.view.hidden = YES;을 할 수 있습니다 VC1의 viewDidLoad 방법, VC1을 표시하지 않고 VC2를 표시하는 경우

관련 문제