2008-10-06 

MyViewController 추가하기

조경민 bro@shinbiro.com neri.cafe24.com

==============================================================================



본 튜토리얼은 iphone project 템플리트 중 View based를 선택하면 나오는 환경과 동일한 환경을 

기본 windows based에서 만들어 보는 튜토리얼 이다.




먼저 Window based 로 프로젝트를 생성한다.


크게 다음과 같은 과정이다.

1. MyViewController class 생성

2. MyView.xib 생성

3. appDelegete 소스에 MyViewController 객체 생성




appDelegate.h

@class MyViewController;

MyViewController *viewController;

@property (nonatomic, retain) IBOutlet MyViewController *viewController;



appDelegate.m

#import "MyViewController.h"

@synthesize viewController;

[window addSubview:viewController.view];

[viewController release];



4. MyView.xib 에서 File's Owner를 view로 연결

- File's Owner의 Inspector 정보 탭에서 class를 MyViewController를 선택

- File's Owner를 view로 연결



5. MainWindow.xib에서 MyViewController 연결

- MainWindow.xib에 ViewController를 추가

- ViewController의 Inspector에서 NIB Name을 MyView로 선택

- ViewController의 Inspector에서 Class를 MyViewController를 선택

- My app delegate를 오른클릭하고 viewController객체를 ViewController로 연결





1. MyViewController class 생성



New File/ ViewController로 

MyViewController를 생성 (MyViewController.m, MyViewController.h가 생성됨)



2. MyView.xib 생성



New File/ Resource 중  

XIB View 선택 MyView생성 (MyView.xib 생성됨)






3. appDelegete 소스에 MyViewController 객체 생성



appDelegate.h에 다음을 추가함.

 



#import <UIKit/UIKit.h>


@class MyViewController;




@interface MyViewAppDelegate : NSObject <UIApplicationDelegate> {


    UIWindow *window;


    MyViewController *viewController;


}




@property (nonatomic, retain) IBOutlet UIWindow *window;


@property (nonatomic, retain) IBOutlet MyViewController *viewController;




@end









appDelegate.m에 다음을 추가함.

 



#import "MyViewController.h"


#import "MyViewAppDelegate.h"




@implementation MyViewAppDelegate




@synthesize window;


@synthesize viewController;






- (void)applicationDidFinishLaunching:(UIApplication *)application {    




    // Override point for customization after application launch


    [window addSubview:viewController.view];


    [window makeKeyAndVisible];


}






- (void)dealloc {  


    [viewController release];


    [window release];


    [super dealloc];


}






@end









4. MyView.xib 에서 File's Owner를 view로 연결

MyView.xib를 더블 클릭하여 연다음 먼저 xib파일의 소유자가 MyViewController임을 설정한다.



먼저 MyView.Xib의 File's Owner를 클릭한 후 Tool/Inspector를 연다음 인스펙터의 네번째 탭 ( i 표시 )의

Class Identity를 MyViewController로 설정한다.






이제 view가 대표 뷰임을 알리기 위해서

File's Owner를 오른클릭하면 ViewController의 view가 무엇인지 연결하는 view가 새로 생긴 것을 확인할 수 있는데,

이를 MyView.xib안의 View로 연결한다.






이것으로 MyView.xib에 관련된 연결은 끝이다.






5. MainWindow.xib에서 MyViewController 연결



먼저 MainWindow.xib에서 ViewController를 추가한다. 

라이브러리에서  뷰컨트롤러를 가져다가 MainWindow.xib창에 놓으면 추가된다.

MainWindow.xib에서 이 뷰컨트롤러를 MyViewController클래스로 연결하기 위해서 이다.








MainWindow.xib에서 생성된 View Controller를 선택하고 Tool/ Inspector를 클릭하여 인스펙터를 띄운다음 

첫번째 탭의  NIB Name을 MyView로 선택한다. 그러면 Loaded From MyView.nib로 바뀐다.








인스펙터 창의 네번째 탭 (i)에서 클래스를 MyViewController를 설정한다.








이제 마지막으로 MainWindow.xib의 My View AppDeligate를 오른클릭하여 viewController를 My View Controller로 연결한다.






이것으로 모든 연결은 끝났다.





뷰에 버튼 클릭하기





MyViewController.h를 다음과 같이 추가한다.

먼저 UIButton, UITextField및 버튼 클릭 이벤트 함수 등은 미리 소스 (MyViewControll.h) 에서 만들어 둬야 한다.

이렇게 해야만 MyView.xib에서 아울렛 연결 시 text1, button1등이 나타나기 때문이다.




#import <UIKit/UIKit.h>






@interface MyViewController : UIViewController {


IBOutlet UIButton *button1;


IBOutlet UITextField *text1;


}




- (IBAction) OnButtonDown:(id) sender;




@end









MyViewController.m 은 다음과 같이추가한다.




- (void)dealloc {


    [super dealloc];


}




- (IBAction)OnButtonDown: (id)sender


{


[text1 setText:@"Textext"];


}






@end







MyView.xib에서 텍스트필드와 버튼을 생성한다.






MyView.xib 의 File's Owner를 오른클릭하여 button1과 text1을 view의 버튼과 텍스트 필드와 연결한다.




 






그리고 버튼이 눌리면 실행되는 OnButtonDown이벤트를 연결한다.













이 후에는 MyView.xib의 View에서 라벨이나 버튼을 놓고 cmd + R 하면 버튼 클릭시 텍스트가 변하는 것을 볼 수 있다.

'KB > iphone/mac' 카테고리의 다른 글

[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
[iPhone SDK] ViewController 관련..  (0) 2008.10.02
[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
cocoa basic #1  (0) 2008.09.30

+ Recent posts