XIB없이 코코아 터치로 프로그래밍 방식으로 뷰 컨트롤러 및 뷰 계층 구조로드
-
03-07-2019 - |
문제
모든 코코아 터치 템플릿이 펜촉을로드하도록 설정된 것 같습니다.
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];
}