iPhone ã§ä»æ´ HelloWorld(InterfaceBuilder使ããã«å®è£ )
Xcode ã«ã¤ãã¦ãã InterfaceBuilder ã«ã¤ãã¦ã®ææ³ã®é·ç§»ã
â åãã¦è§¦ã£ãã¨ããâãè¶
æå³ä¸ãæ¬æ°ã§ä½¿ãã«ããã
â¡ãã¹ã¦ããã°ã©ã ã§å®è£
ããå¾ãâãInterfaceBuilder ã£ã¦ãããããã¨ãã£ã¦ãã®ããã ãã³ã¼ãã§æ¸ãã
â¢ä»ãâãã¨ãããã InterfaceBuilder ã§è¦ãç®ã ãä½ã£ã¦ãåãã¦ããããã°ã©ã ã«ç½®ãæããã
é ã追ã£ã¦æ¯ãè¿ãã
å§ãã«ãæ§ã
ãªå
¥éæ¸ã§ InterfaceBuilder ã使ã£ãã³ã¼ãã£ã³ã°å
¥éããã¦ãããããã¯ãæ¬ã«éã£ããã¨ã§ã¯ãªããWeb ã§ãããã
å
¨ãä½ãç¥ããã«ãã¯ãã§ããã¼ãã¨ãã®ãã¾ããªãããã§ãè¯ããããããªãããããæ¬è·ã§ããã¯è´å½çã ã¨æããã«ã¹ã¿ãã¤ãºãã§ããªããã°ãåçãªç»é¢çæãã§ããªãããã ã
ããã¦ãè¦äºã«ããã«ããã£ããInterfaceBuilder ã§ä½ã£ããã®ã®å®ä½ãã©ããã£ã¦åãã®ãããããå
¥éã§èª¬æããªãããã ã
ããã£ã¨ãããããªã®ç¥ãå¿
è¦ãããã®ã¯ãã ãããæã¤ãæ¬è·ãã ãã ã
ããã§æåã«ã¨ã£ãè¡åã¯ãInterfaceBuilder ã使ããã«ã³ã¼ãã£ã³ã°ãã¦ã¿ãã¨ãããã¨ã ã
æåã«èª°ããéã HelloWorld ãåã¯ããä½ã£ãã
- ãã³ãã¬ã¼ããå ¨é¨è©¦ãã¦ã¿ãã
- å ±éé¨åãæ¯è¼ãã¦ã¿ãã
- æãåºæ¬ã¨ãªããã³ãã¬ã¼ãããããã¸ã§ã¯ããä½æããã
ä¸è¨ã®æé ã§è¡ãçããã®ã Window-based Application ã ã£ãã
main ããã£ã¦ãAppDelegate ãå¼ã³åºãã¦ãwindow ã¨å¼ã°ããç»é¢ãåå¨ãããã®æ§æã ã
æ§æçã«ã¯ããããªé¢ä¿ã£ã½ã*1ã
main -> AppDelegate <-| |- window ^ |å£| ^ ViewController <-| |- UIView
UIViewController ã«ã¯ããµãã³ã³ããã¼ã©ã»ä¿æã§ããããããã«åããã¦ãUIView ãä¸é層ã§ä¿æã§ããã
å人çã«ã¯ãã¾ãæ·±ãã¯ããããªãããªãããã
Window-based Application ã§ã¯ãmain,AppDelegate,window ã®ã»ãããããªãã
main -> AppDelegate <-| |- window
ãªã®ã§ãViewController ã¯æåå³åã§å®è£
ããï¼ä»ã¯ã¾ã ãã 09/06 ä½ã¯æ®ã©è±èªãããªãã£ãï¼ã
ãããã
#import <UIKit/UIKit.h> @interface HelloViewController : UIViewController { UILabel* labelHello; UIButton* buttonPush; } - (IBAction)pushHello; @end
æ¬ä½(åç §ã«ã¦ã³ããããããããããã«æåã§æ°ãã¦ã¾ã)ã
#import "HelloViewController.h" @implementation HelloViewController - (id)init { if (self = [super init]) { // MVC ã® M 層ãªããã¯ãã®è¾ºã§åæåãã¨ãã // ä»åã¯ãªãã } return self; } // nib(XIB) æãã§ã¤ã³ã¹ã¿ã³ã¹ä½ãã¨ãã®ã¤ãã³ãã // MFC ã® OnCreate ã¨ããã®ã¸ãã - (void)loadView { // alloc ã§åç §ã«ã¦ã³ã 1 [self addView:]ã§åç §ã«ã¦ã³ã 2 self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 500)]; // åç §ã«ã¦ã³ãã 1 ã«ãã¦ããã [self.view release]; // alloc æç¹ã§åç §ã«ã¦ã³ã 1 labelHello = [[UILabel alloc] init]; [labelHello setFrame:CGRectMake(20, 100, 300, 21)]; [labelHello setText:@"Push button."]; // addSubview ã§åç §ã«ã¦ã³ã 2 [self.view addSubview:labelHello]; // buttonWithType ã§ãã¿ã³ãä½ãã¨ãautorelease ãªã®ã§ã // ãã®ã¡ã½ãããæããã¨åç §ã«ã¦ã³ãã 1 æ¸ãã // å¤æ°ã«ä¿æããããã®ã§ãretain ã§åç §ã«ã¦ã³ããå¢ããã¦ããï¼åç § 2ï¼ã buttonPush = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; [buttonPush setFrame:CGRectMake(100, 140, 80, 40)]; [buttonPush setTitle:@"hello" forState:UIControlStateNormal]; // ã¤ãã³ããè¨å®ãã¦ãã // ãã¿ã³ãæ¼ãããããèªã¤ã³ã¹ã¿ã³ã¹ã® pushHello ãèµ·åã [buttonPush addTarget:self action:@selector(pushHello) forControlEvents:UIControlEventTouchUpInside]; // addSubview(åç § 3) [self.view addSubview:buttonPush]; // ã¡ã½ããçµäº(buttonPush ã®åç §ã 2 ã«ãªã) } // ãã¿ã³æ¼ãããã¨ãã®ã¤ãã³ãã - (IBAction)pushHello { [labelHello setText:@"Hello world!"]; } - (void)viewDidUnload { } - (void)dealloc { // 両æ¹åç §ã«ã¦ã³ã 1 㸠[buttonPush release]; [labelHello release]; // self.view ã¯æ¶ãã¦ãåã«æã£ã¦ãé£ä¸ã®åç §ã«ã¦ã³ããå ¨é¨ 1 æ¸ãã [super dealloc]; } @end
ã§ãããã AppDelegate ã«èªã¾ããã°èµ·åã§ããã
@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; UIViewController* controller; // 追å } @property (nonatomic, retain) IBOutlet UIWindow *window; @end
- (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch controller = [[HelloViewController alloc] init]; [window addSubview:controller.view]; [window makeKeyAndVisible]; } - (void)dealloc { [controller.view removeFromSuperview]; [controller release]; [window release]; [super dealloc]; }
ã§ãInterfaceBuilder 使ãã³ã¼ãã¨æ¯è¼ãã¦ä½ãéããã¨ããã¨ã
- UIViewController åæåæã«ãinitWithNibName ã使ç¨ããªã(nib/xib ãã¡ã¤ã«ã使ããªããã)ã
- loadView ã§ç»é¢ãçæãã¦ã(InterfaceBuilder ãæ¬æ¥ãµãã¼ããã¦ãé¨å)
- dealloc ã§åç §ã«ã¦ã³ãå¶å¾¡ãã¦ã(autorelease ãã¨ãã°ç¡è¦ãã§ãã)
è¦ããã« loadView ã®æã§ã³ã¼ãæ¸ããªãã¦æ¸ãã ãã
ãã»ã©è¤éãªç»é¢ä½ãã®ã§ãªããã°ãã³ã¼ãã§æ¸ããæ¹ãå®è¡é度æ©ãããããããã
ã¨ã¯ãããè¦ãç®ã«æéãããããåã«ããã¸ãã¯ã確èªãããå ´åã確ãã«ããããªã®ã§ãæè¿ã¯ãããªä½¿ãæ¹ãããã
- InterfaceBuilder ã§ç»é¢ãé©å½ã«ã§ã£ã¡ããã
- å é¨å¦çããã¾ãäºåãã¦ãã®ã ã確èªãã
- loadView ã¡ã½ãããä½æãã¦ãinitWithNibName ã init ã«ç§»æ¤ããã
ãã£ã¨ãã使ãæ¹ããã£ã¦ãã¹ãã²ãã£ã«ãªããªãæ¹æ³ãããã°æ¯éã
*1:å®éã«ã¯ãããææ¡ããã®ã«ï¼âï¼æ¥è¦ããã ã®ã ã