2012-04-18 4 views
0

Прежде всего извините за мой I английский.Xcode 4: как использовать int в двух разных классах?

Я создаю приложение, которое подсчитывает время, которое вы касаетесь внутри кнопки. Приложение разделено на UITabBarController: в первом представлении (класс: ViewController) есть кнопка и метка, которая отображает значение «int» (int counter;), дело в том, что я хочу установить максимальное число , поэтому, когда вы коснулись кнопки 50 раз, появляется alertView. Я хочу сделать это максимальное число гибким, чтобы вы могли настроить его с помощью ползунка, который находится во втором представлении tabBar.

Вот код:

ViewController.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController{ 
    int counter; 
    IBOutlet UILabel *counterLabel; 
} 

-(IBAction)counter:(id)sender; 
-(IBAction)Reset:(id)sender; 

@end 

ViewController.m

#import "ViewController.h" 

@implementation ViewController 

-(IBAction)counter:(id)sender{ 
    if (counter < end) // in spite of end, I want to put Max (declared in AjustesView.h) 
    { 
     counter = counter+1; 
     counterLabel.text = [NSString stringWithFormat:@"%i", Jugador1]; 

    }else 
    { 
     UIAlertView *alerta = [[UIAlertView alloc] initWithTitle:@"Alerta!" message:@"Ha llegado a 100 cliks" delegate:self cancelButtonTitle:@"Aceptar" otherButtonTitles:nil, nil]; 
     [alerta show]; 
     [alerta release]; 
    } 
} 

-(IBAction)Reset:(id)sender{ 
    counter = 0; 
    counterLabel.text = [NSString stringWithFormat:@"%i", counter]; 
} 

AjustesView.h

@interface AjustesView : UIViewController{ 
    IBOutlet UISlider *maxSlider; 
    IBOutlet UILabel *maxLabel; 
    int max; 
} 

@property (nonatomic, retain) IBOutlet UISlider *maxSlider; 

-(IBAction)AdjustmentOfMaximum:(id)sender; 

@end 

AjustesView.m

#import "AjustesView.h" 

@implementation AjustesView 

@synthesize maxSlider; 

-(IBAction)AdjustmentOfMaximum:(id)sender{ 
    max = self.maxSlider.value; 
    maxLabel.text = [NSString stringWithFormat:@"%i", max]; 
} 

IB файл .xib не раскадровку Спасибо за ваше время!

ответ

0

Одна вещь, которую вы можете сделать, это сохранить вашу стоимость int в AppDelegate приложения и синтезировать ее как свойство. Всякий раз, когда вы хотите обновить или получить значение вам просто нужно, чтобы получить значение от AppDelegate как так

#include "AppDelegate.h" 



.. 

//whenever you want to access the value or update the value 
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
appDelegate.myCounter = newvalue; 
+0

она будет работать на моем случае? , потому что newValue равен значению ползунка, который находится во втором представлении – yeker3

0

Это звучит, как вы хотите определенного пользователь предпочтения. Для этого используйте NSUserDefaults

Используйте приведенные ниже методы, чтобы установить и получить целое число от NSUserDefaults.

-(void)setInt:(int)myInt{ 
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
    //To set a value 
    [prefs setInteger:myInt ForKey:@"myInt"]; 
    [prefs syncronize]; 
} 

-(int)getInt{ 
//to get a value 
    return [[NSUserDefaults standardUserDefaults] integerForKey:@"myInt"]; 
} 

This is the Apple NSUserDefaults Class Reference

+0

где я должен писать каждую вещь? Я не продвинутый программист. thx – yeker3

+0

извините, но я не знаю, как это сделать :( Я пишу это в виде controller.m (смотри мое сообщение) спасибо и извините в другое время – yeker3

Смежные вопросы