CS185c
Chris Pollett
Feb. 8, 2012
// // SecondProjectViewController.h // SecondProject // // Created by Chris Pollett on 8/26/09. // Copyright San Jose State University 2009. All rights reserved. // #import <UIKit/UIKit.h> @interface SecondProjectViewController : UIViewController { } @end
#import <UIKit/UIKit.h> @interface SecondProjectViewController : UIViewController { IBOutlet UILabel *statusText; } @property (retain, nonatomic) UILabel *statusText; -(IBAction) buttonPressed:(id)sender; @end
UILabel *tmp = myController.statusText; muController.statusText = someLabel;
#ifndef IBOutlet #define IBOutlet #endifIt is used as a marker by interface builder though when it looks at a header file.
-(IBAction) actionMethod; -(IBAction) actionMethod:(id)sender; -(IBAction) actionMethod:(id)sender withEvent:(UIEvent *)event;
//
// SecondProjectViewController.m
// SecondProject
//
// Created by Chris Pollett on 8/31/09 updated 02/08/12.
// Copyright 2009-12. All rights reserved.
//
#import "SecondProjectViewController.h"
@implementation SecondProjectViewController
@synthesize statusText;
-(IBAction)buttonPressed:(id)sender
{
NSString *title = [sender titleForState:(UIControlState)UIControlStateNormal];
NSString *newText = [[NSString alloc] initWithFormat:@"%@ button pressed.",title];
statusText.text = newText;
[newText release];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
return YES;
}
}
@end
UIImage *bob = [UIImage imageNamed:@"bob.png"];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease]; } else { self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease]; } self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; return YES; }
@autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); }
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release];
@interface Second_ProjectAppDelegate : UIResponder <UIApplicationDelegate>says we are extending NSobject and implementing the UIApplicationDelegate protocol.
@protocol MyInterface -(void) myMethod; @end;
@interface AClass -(void) aMethod; @endAssume this was implemented in some implementation .m file we don't have access to...
#import "AClass.h" @interface AClass (MyMods) -(void) niftyMethod; @endand implement it in MyModsAClass.m:
@implement AClass (MyMods) -(void) niftyMethod { // some code } @end
#import "AClass.h" #import "MyModsAClass.m" int main( int argc, const char *argv[] ) { AClass *aClass = [[AClass alloc] init]; //uses AClass(MyMods) .... }
@interface AClass -(void) aMethod; @end
#import "AClass.h" @interface AClass (Private) -(void) niftyMethod; @end @implement AClass -(void) aMethod { //some code, could call nifty Method } @end @implement AClass (Private) -(void) niftyMethod { // some code } @end
#import "AClass.h" int main( int argc, const char *argv[] ) { AClass *aClass = [[AClass alloc] init]; // could not call [aClass niftyMethod]; }