XIB없이 코코아 터치로 프로그래밍 방식으로 뷰 컨트롤러 및 뷰 계층 구조로드

StackOverflow https://stackoverflow.com/questions/809898

문제

모든 코코아 터치 템플릿이 펜촉을로드하도록 설정된 것 같습니다.

View Controller를 사용하고 NIB/XIB가 아닌 뷰 (계층)를 프로그래밍 방식으로로드하려는 새 프로젝트를 시작하려면 템플릿을 설정하거나 조정하는 단계는 무엇입니까?

비록 내가해야 할 일은 구현 -LoadView뿐만 아니라 이것을 시도 할 때마다 어려움이 있습니다.

도움이 되었습니까?

해결책

완전히 프로그래밍 방식의 사용자 인터페이스 생성을 수행하는 것은 합리적으로 간단합니다. 먼저 다음과 같은 것을 보려면 main.m을 편집해야합니다.

int main(int argc, char *argv[]) 
{
    NSAutoreleasePool *pool = [NSAutoreleasePool new];  
    UIApplicationMain(argc, argv, nil, @"MyAppDelegate");
    [pool release];
    return 0;   
}

여기서 MyAppDelegate는 신청서 대의원의 이름입니다. 이는 MyAppDelegate의 인스턴스가 출시시 생성되며, 이는 일반적으로 응용 프로그램의 기본 NIB 파일에 의해 처리됩니다.

MyAppDelegate 내에서 ApplicationDidFinishLaunching을 구현하십시오 : 다음과 유사한 메소드 :

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{    
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    if (!window) 
    {
        [self release];
        return;
    }
    window.backgroundColor = [UIColor whiteColor];

    rootController = [[MyRootViewController alloc] init];

    [window addSubview:rootController.view];
    [window makeKeyAndVisible];
    [window layoutSubviews];    
}

여기서 MyRootViewController는 창의 기본보기의 뷰 컨트롤러입니다. 이렇게하면 기본 창을 초기화하고 MyRootViewController가 관리하는보기를 추가해야합니다. RootController는 나중에 참조 할 수 있도록 대의원 내에서 인스턴스 변수로 유지됩니다.

이를 통해 MyRootViewController를 통해 프로그래밍 방식으로 사용자 인터페이스를 생성 할 수 있습니다.

다른 팁

uiviews 자체는 계층 구조가 없으며 UinavigationControllers는 그렇습니다. 따라서 그 중 하나를 시작하고 UiviewController를 스택에 올리십시오. 이것은 XIB 파일이 전혀없는 가장 기본적인 방법으로 수행해야합니다. 당신은 이것을 구축 할 수 있어야합니다.

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
   UINavigationController *navController = [[UINavigationController alloc] init];

   UIViewController *viewController = [[UIViewController alloc] init];

   // set the properties of viewController here, to make it look like you want

   [navController pushViewController:viewController animated:NO];

   [window addSubview:navController.view];

   // Don't forget memory management
   [navController release];
   [viewController release];

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