CS185c
Chris Pollett
Sep. 8, 2010
// // 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.
// Copyright San Jose State University 2009. 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];
}
/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
UIImage *bob = [UIImage imageNamed:@"bob.png"];
- (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch [window addSubview:viewController.view]; [window makeKeyAndVisible]; }
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release];
@interface Second_ProjectAppDelegate : NSObject <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]; }