[강의 내용]
1. Main Window 이외의 추가적으로 윈도우 생성 / 전환 / 삭제
2. Window-Based Project
1.Project 생성하기
1) Create a Xcode Project -> Window-based Application - > "ChangeView"
2) Interface Builder 실행 -> Library (Shift + Cmmnd + L ) -> "View" ( Cocoa Touch) 2개를 MainWodw.xib 추가
2. View와 Xcode 연결
1) ChangeViewAppDelegate.h 파일에 view 관련 변수 추가
2) Interface Builder와 변수 연결하기@interface ChangeViewAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;}
IBOutlet UIView *firstView;
IBOutlet UIView *secondView;
a. MainWindow.xib 파일 내에 "Change View App Delegate" 항목을 선택한 후 마우스우클릭 ( 혹은 Cmmnd키를 누르고 마우스 좌클릭)을 통한 Drag&Drop으로 view 항목에 연결
3) view 변경
a. MainWindow.xib에서 view를 선택하고 Identity("Cmmnd + 4") 창을 열어, Name 항목에 해당하는 명칭을 입력
b. Label 추가 : 명칭 입력 / 버튼 추가 : 명칭 추가 ( firstView, ㄴecondView 모두)
4) 생성된 뷰를 MainWindow에 반영하기
a. ChangeViewAppDelegate.m 파일, didFinishLaunchingWithOptions함수에 첫번째 뷰 추가
4) 뷰전환 기능 구현- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch
[window addSubview:firstView];
[window makeKeyAndVisible];
return YES;}
a. 함수선언 : ChangeViewAppDelegate.h 에 추가
b. Delegate 연결 : firstView, secondView에 생성한 Button을 우클릭하여 MainWindow.xib의 "Change View App Delegate"에 Drag&Drop한 후 ChangeView 함수를 선택한다.-(IBAction) ChangeView;
c. ChagneView 함수 내용 구현
-(IBAction) ChangeView
{
NSArray *subs = [window subviews];
//window 객체는 하나의 view를 가짐
[[subs objectAtIndex:0]removeFromSuperview];
if([subs objectAtIndex:0]== secondView)
{
[window addSubview:firstView];
}
else {
[window addSubview:secondView];
}}
[질문] firstView, secondView는 alloc를 하지 않는가?
- (자답) 이미 Interface Builder를 통해 생성되어 있고, 마우스 우클릭 과정을 통해 각변수의 포인터로 연결시켰음.
[질문] firstView, secondView를 Pointer 형이 아닌 UIView 변수로도 받을 수 있을까?
- 몰라, 해 봐봐.. -> 해봤는데, xib에서 Drag&Drop 기능도 안되고 컴파일시에도 헤더파일 선언부에서 에러가 발생하는 것으로 보아 무조건 포인터 형으로 받아야 됨.
'아이폰개발 > AppsNext강좌정리' 카테고리의 다른 글
[AppsNext] iPhone SDK 기본강좌_6강 다중 Xib 사용하기 (0) | 2010.06.15 |
---|---|
[AppsNext] iPhone SDK 기본강좌_5강 Navigation Controller (0) | 2010.06.13 |
[AppsNext] iPhone SDK 기초강좌_3강 Table Control (4) | 2010.06.12 |
[AppsNext] iPhone SDK 기초강좌_2강 HelloWorld, 그리고 XCode 설명 (0) | 2010.06.11 |
[AppsNext] iPhone SDK 기초강좌_1강 들어가면서 (0) | 2010.06.10 |