2012-02-18 7 views
0

私は電卓を構築しようとしていますが、一連の値は一定であり、いくつかの値は変数です。IBActionに格納された値を次のNib UITextFieldに渡します。

電卓はまずUIButtonから開始され、IBActionを使用してUIButtonに定数値の数値を保存します。その後、ボタンをタッチすると、UITextFieldの定数値表示で電卓が起動します。

私の質問は、IBActionのコード内に定数値を格納し、次のnibファイルUITextFieldに表示するためにどのコードを入力すればいいのですか?以下は私の現在のコードです。

多くのありがとうございます。

- (IBAction)runningtrack:(id)sender { 

int length = 400; 
int width = 30; 

track *myView3 =[[track alloc] initWithNibName:nil bundle:nil]; 
     [myView3 setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
     [self presentModalViewController:myView3 animated:YES]; 
    } 

答えて

1

私は代理人のメトスを使用することも、簡単に(望ましくない)NSUSerDefaultsを使用することもできます。 yuがNSUserDefaultsを使用すると、あなたのコードは次のようになります。

- (IBAction)runningtrack:(id)sender { 

int length = 400; 
int width = 30; 
NSNumber *theNumber = [NSNumber numberWithInt:<lenght&with or which int value you will save>];//NSUSerDefaults saves property list objects, so convert int to NSNumber 
NSUserDefaults *savedValue=[NSUserDefaults standartuserdefault]; 
[savedValue setObject:theNumber forKey:@"myConst"]; 
track *myView3 =[[track alloc] initWithNibName:nil bundle:nil];// by the way i don't think initWithNibName:nil give a proper response, it must crash 
     [myView3 setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
     [self presentModalViewController:myView3 animated:YES]; 
    } 

(あなたはTAT値を表示したい.xibを持っている)他のクラス

NSNumber *yourValue=[[NSUserDefaults standartuserdefault] objectForKey:@"myConst"]; 
UITextView *yourTextView=... 
yourTextView.text=yourValue; 
2

であなたはtrackクラスでプロパティを宣言するか、カスタムのinitメソッドを作成する必要があります。

  1. プロパティ

    track *myView3 =[[track alloc] initWithNibName:nil bundle:nil]; 
    track.valueForTextField = width; //valueForTextField is a int property in track class 
    
  2. カスタムのinit:

    track *myView3 =[[track alloc] initWithNibName:nil bundle:nil andMyValue:width]; 
    
1

は、次のカスタムinitメソッドを記述する必要があります。

track *myView3 =[[track alloc] initWithNibName:nil bundle:nil customLength:400 customWidth:300];

あなたは上記のコードを使用する前に、以下の手順に従わなければなりません。

  1. track.hヘッダーファイルに、カスタムのinitメソッドの宣言を追加します。 track.mファイルで

    - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle customLength:(int) customWidth:(int);

  2. 、カスタムメソッドの定義を追加します。

    - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle customLength:(int) customWidth:(int) { /*You can use the customLength and customWidth here */}

関連する問題