2011-11-24 6 views
0

"윈도우 기반 응용 프로그램 만들기"옵션을 사용하여 Xcode 3.x에서 프로젝트를 시작했습니다. 프로젝트는 info.plist 항목에서 Main nib 파일을로드하는 것처럼 보입니다 : "Main nib file base name".UIViewController를 사용하여 펜촉 파일로드

이제 UIViewController를 사용하여 주 nib 파일을로드하고 싶습니다. info.plist 항목을 삭제하고 nib 파일을 프로그래밍 방식으로 "application : didFinishLaunchingWithOptions :"에서보기 컨트롤러를 사용하여로드 할 수 있습니까?

(현재이 프로젝트는 엑스 코드 4.2로 이동되었습니다.하지만 컴파일러 버전을 생각해야한다별로 중요하지이 경우에 ...)

희망이 분야에서 지식이 누군가가 도움을 줄 수 있다고 ...

답변

1

동일한 프로젝트를 업그레이드하는 경우 그 작업을 수행 할 수 없습니다.

애플이 애플 리케이션에 들어가기 위해 그들의 템플릿에서 사용하고있는 메커니즘이이 버전들 사이에서 바뀌었다.

3.x의 경우 Main Interface은 프로젝트 설정에서 MainWindow.xib으로 설정됩니다. 이 xib에서 앱 대리인이 개체로로드됩니다.

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

가장 좋은가 3.x 및 4.x의 사이에 변경된 마지막 인자 인 것 다음 main.m 특별히이 줄 응용 프로그램 대리자를로드 4.x의에서

새 프로젝트를 만들고 템플릿 코드가 어떻게 연결되어 있는지 확인하십시오.

UPDATE

우선 프로젝트가 작동하는지 당신이 정말로 그것을 변경해야합니까? 나는 새로운 프로젝트 당신의 main.m

이동에서 템플릿 코드를 사용하고

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 

int main(int argc, char *argv[]) 
{ 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil); 
    [pool release]; 
    return retVal; 
} 

에서 구현을 변경하고있어

다음이 경우 NB 변경 AppDelegate을 앱 대리인 클래스의 이름으로 변경하십시오.

프로그래밍 방식으로 UIWindow을 만들려면 앱 대리인을 업데이트해야합니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

    // Instantiate your rootViewController 

    self.window.rootViewController = yourRootViewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

내가, 다른 자막이있을 수 있습니다 생각할 수있는 가장 확실한 차이가 있지만 나는 너무 오래 내가 기억할 수없는에서 3.x를 사용하지했습니다.

+0

답변 해 주셔서 감사합니다. 너무 나쁜 "사자"는 3.x를 더 이상 실행할 수 없습니다. "템플릿 코드가 어떻게 연결되는지"가 의미하는 바를 조금 더 설명 할 수 있습니까? – Stanley

+0

자세한 설명을 주셔서 감사합니다. 초기 단계에서 루트보기 컨트롤러를 사용하지 않는 것에 대해 꽤 후회합니다. 코코아 코딩 패턴에 익숙하지 않아서 뷰 컨트롤러의 중요성에 대해 알지 못했습니다.뷰를 뒤집을 수있는 유효한 뷰 컨트롤러가 필요합니다. 아마도 나는 컨트롤러없이 그것을 할 방법을 찾아야한다. – Stanley

+0

iOS 4의 UIWindow에 'rootViewController'라는 경고가 하나 추가되었으므로 이전 버전을 지원하려면 이전에보기 컨트롤러를 추가해야합니다. '[self.window addSubView : yourViewController.view];' –

관련 문제