2011-07-27 5 views
0

내 앱에서 두 번째 시작 화면을 만들고 싶습니다. 제 생각에는 default.png을 사용하고 UIView을 전체 화면에 UIImageView으로로드하십시오.ipad 두 번째 시작 화면

viewDidLoad에서 나는 수면 옵션을 배치하고 실제 앱 화면을로드 한 후에 생각했습니다. 또한 내 함수가 viewDidLoad에서 호출 될 때 아무 일도 발생하지 않습니다.

여기 ... 내 수퍼가 비어 을 보인다 코드 조각입니다 : 즉 다른 뷰가로드되지 않은 이유가 될 수 있도록

if (self._pdfview == nil) 
{ 
    pdfview *videc = [[pdfview alloc] 
         initWithNibName:@"pdfview" bundle:nil]; 
    self._pdfview = videc; 
    [pdfview release]; 
} 
// get the view that's currently showing 
UIView *currentView = self.view; 
// get the the underlying UIWindow, or the view containing the current view 
UIView *theWindow = [currentView superview]; 

theWindow이 줄 이후 비어 있습니다.

제 질문은 두 번째 시작 화면을 어떻게 만듭니 까?

또는 다른 회사에 대한 언급이있는 게임과 같은 3 개의 시작 화면.

답변

0

내가 올바르게 이해한다면 위의 기능이 어떤 컨트롤러의 viewDidLoad에서 실행될 때 theWindow이 nil이므로 새로운보기 (시작 화면)가 추가되지 않습니다.

몇 가지 관찰 : theWindow이 전무는

  1. 경우, 다음 self.view가 맨 위에있는 UIView입니다; 당신이 할 수있는,

    UIView *currentView = self.view; 
    // get the the underlying UIWindow, or the view containing the current view 
    UIView *theWindow = [currentView superview]; 
    UIView *newView = _pdfview.view; 
    if (theWindow) { 
        [currentView removeFromSuperview]; 
        [theWindow addSubview:newView]; 
    } else { 
        self.view = newView; //-- or: [self.view addSubview:newView]; 
    } 
    
  2. 당신이 (당신이 뭘 하려는지 보인다)의 앱 UIWindow를 얻으려면 : 당신은 당신의보기를 추가하려고하고 교체를, 또는 간단하게 할 수

    [UIApplication sharedApplication].keyWindow; 
    

거기에서 당신은 rootViewController (아이폰 OS 4.0에서)

 [UIApplication sharedApplication].keyWindow.rootViewController = ...; 

를 설정하거나 추가 할 수 있습니다 그것에 서브 뷰와 같은 newView : 두 번째 경우에

[[UIApplication sharedApplication].keyWindow addSubview:newView]; 

, 당신은 아마도 이전에 UIWindow에 추가 된 모든 subviews 제거해야합니다. (keyWindow.subviews를 반복하고 removeFromSuperview로 전화하십시오).

OLD 답변 :

난 당신이 시도하고 현재 뷰에 서브 뷰로 pdfview를 추가해야한다고 생각 : 또는 theWindow를 부르는에

[currentView addSubview:videc]; 

:

[theWindow addSubview:pvidec]; 

그리고, release 명세서 다음에`addSubview '를 이동하십시오. 그렇지 않으면 뷰가 즉시 할당 해제됩니다.

+0

귀하의 답변에 대한 모든보기를로드하려면 내 문제가되지 않습니다. 문제는 모든 그림과 함께 두 번째 시작 화면을 만드는 것입니다. – Ferdi

+0

나는 당신을 이해하고 있는지 잘 모르겠습니다. 두 번째 시작 화면을 만들려면 이미지 또는 펜촉을로드하고 현재보기 위에 표시해야합니다. 그 방법은'addSubview'를 사용하는 것입니다. 귀하의 코드에서, 당신은'videc'을로드하지만, 아무 것도하지 않습니다. 즉, 그것을 표시하려고하지 마십시오. – sergio

+0

다른 xib를로드하는이 함수를 호출합니다. – Ferdi

관련 문제