1. Welcome to the new MacRumors forums. See our announcement and read our FAQ

Resolved increment with button...

Discussion in 'iPhone/iPad Programming' started by beautifulblood, Apr 17, 2011.

  1. beautifulblood, Apr 17, 2011
    Last edited: Apr 18, 2011

    macrumors newbie

    #1
    So I started this program thinking it was going to be really easy. Basically my idea was to make an app that just kept track of a baseball team's score, nothing fancy just trying to start understanding objective-c/iphone development , there is one button you click on it and the number in the text field increments by one.

    PitchCounter.h
    Code:
    #import <UIKit/UIKit.h>
    
    @interface PitchCounterViewController : UIViewController 
    {
    	IBOutlet UITextField *homeScore;
    }
    
    @property (nonatomic, retain) IBOutlet UITextField *homeScore;
    
    - (IBAction) homeScoreButton;
    
    @end
    
    
    PitchCounter.m
    Code:
    #import "PitchCounterViewController.h"
    
    @implementation PitchCounterViewController
    
    @synthesize homeScore;
    
    - (IBAction) homeScoreButton
    {
    	int i = 0;
    	NSString *homeScoreCounter = [[NSString alloc] initWithFormat:@"%i", i];
    	homeScore.text = homeScoreCounter;
    	i++;
    	NSLog(@"%@", homeScoreCounter);
    }
    
    
    /*
    // The designated initializer. Override to perform setup that is required before the view is loaded.
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // 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
    
    I thought you could set a variable and then increase it by one but apparently not. Any help would be appreciated thanks.
     
  2. Moderator

    dejo

    Staff Member

    #2
    You can. It's just that every time you call homeScoreButton, you're setting your i back to 0. Maybe try making i an instance variable.
     
  3. macrumors newbie

    #3
    WOW, worked perfectly don't know why that didn't even cross my mind.

    One more question, when you are using IBAction on a button you are basically saying every time I hit this button I want to run this piece of code correct?

    Thanx again for the help.
     
  4. Moderator

    dejo

    Staff Member

    #4
    In a ways, yes. You're saying, assuming you have the button configured in a standard way, that every time your button receives the Touch Up Inside event, call the method you have connected for that. Realize, though, that there are a number of other events to which you can respond and trigger code.
     
  5. macrumors newbie

    #5
    Gotcha, thanks
     

Share This Page