Xcodeで遊ぶ
今日は昨日の続きで、同じようなプログラムのiPhone版を書いてみることにした。
といっても、Tutorialを見ながら、である。
delegateとかModel-View-Controllerとか、ちゃんと理解できるようになりたいな。ってか、ならんとな。
TodayNowプロジェクトの作成
Window-based Applicationとして作成する。
TodayNowAppDelegate.hは、こんな感じ。
#import <UIKit/UIKit.h> @class TodayNowViewController; @interface TodayNowAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; TodayNowViewController* todayNowViewController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) TodayNowViewController *todayNowViewController; @end
そして、TodayNowAppDelegate.mは、こんな感じ。
#import "TodayNowAppDelegate.h" #import "TodayNowViewController.h" @implementation TodayNowAppDelegate @synthesize window; @synthesize todayNowViewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch TodayNowViewController *aViewController = [[[TodayNowViewController alloc] initWithNibName:@"TodayNowViewController" bundle:[NSBundle mainBundle]]autorelease]; [self setTodayNowViewController:aViewController]; UIView *controllersView = [todayNowViewController view]; [window addSubview:controllersView]; [window makeKeyAndVisible]; return YES; } - (void)dealloc { [todayNowViewController release]; [window release]; [super dealloc]; } @end
もう、チュートリアル丸写し。
Viewの作成
TodayNowViewController.xibには、UITextFieldとUIButtonを設置しておく。
その上で、TodayNowViewController.hは、こんな感じで。
#import <UIKit/UIKit.h> @interface TodayNowViewController : UIViewController { UITextField *textField; } @property (nonatomic, retain) IBOutlet UITextField *textField; -(IBAction)printTodayNow:(id)sender; @end
そして、TodayNowViewController.mは、こんな感じ。
#import "TodayNowViewController.h" @implementation TodayNowViewController @synthesize textField; - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } - (void)viewDidUnload { [super viewDidUnload]; } - (void)dealloc { [textField dealloc]; [super dealloc]; } -(IBAction) printTodayNow: (id)sender{ NSDate *date = [[NSDate date]autorelease]; NSString *now = [[[NSString alloc] initWithFormat: @"%@", [date description]] autorelease]; [textField setText:now]; } @end
なんていうか、AndroidでActivityにListenerを設定してOnClick()とか定義していくのとは、別の感覚だ。Xcode自体は初めてじゃないから、InterfaceBuilderでOutletとActionを繋いでいく作業も今さら驚かないけど、やっぱりこれは独特な環境だよな。
という感じで、ひとまず動くのが確認できたので、とても嬉しい。