2012-02-10 7 views
1

これについて簡単な説明があると確信しています。 私はデータを(ストアではなく)転送するが、ユーザーが入力したテキストをテキストフィールドに転送し、それを別のViewControllerのUILabelとして表示することを検討しています。 私はすでに、ユーザーが入力したテキストを同じviewcontrollerのラベルに変換する方法を知っています。 私の問題がインポートされていると思います。ビューコントローラを使ってUITextFieldをUILabelに変換する

.H:

@interface ViewController : UIViewController { 
IBOutlet UITextField *firstPerson; 
IBOutlet UITextField *secondPerson; 
IBOutlet UIButton *calculateButton; 
NSString *firstName; 
NSString *secondName; 
} 
@property (nonatomic, retain) IBOutlet UITextField *firstPerson; 
@property (nonatomic, retain) IBOutlet UITextField *secondPerson; 
@property (nonatomic, retain) NSString *firstName; 
@property (nonatomic, retain) NSString *secondName; 
@property (nonatomic, retain) IBOutlet UIButton *calculateButton; 
-(IBAction)calculate; 
@end 

.M:

-(IBAction)calculate { 
//Linked to UIButton 
//This is the first View Controller. 
// firstName = firstPerson.text; 
// secondName = secondPerson.text; 
secondViewController = [[ShowStats alloc] init]; 
} 

私secondviewコントローラ.M(SHOWSTATS):

#import "ShowStats.h" 
#import "ViewController.h" 
- (void)viewDidLoad 
{ 
firstName = firstPerson.text; 
secondName = secondPerson.text; 


[super viewDidLoad]; 
} 

多くの感謝! EDIT

ViewController.h

#import <UIKit/UIKit.h> 
#import "ShowStats.h" 

@interface ViewController : UIViewController { 
IBOutlet UITextField *firstPerson; 
IBOutlet UITextField *secondPerson; 
IBOutlet UIButton *calculateButton; 
//NSString *firstName; 
// NSString *secondName; 
} 
@property (nonatomic, retain) IBOutlet UITextField *firstPerson; 
@property (nonatomic, retain) IBOutlet UITextField *secondPerson; 
//@property (nonatomic, retain) NSString *firstName; 
//@property (nonatomic, retain) NSString *secondName; 
@property (nonatomic, retain) IBOutlet UIButton *calculateButton; 
-(IBAction)calculate; 
@end 

ViewController.m

#import "ViewController.h" 
#import "ShowStats.h" 

@implementation ViewController 
@synthesize firstPerson, secondPerson; 
//@synthesize firstName, secondName; 
@synthesize calculateButton; 
ShowStats *secondViewController; 

-(IBAction)calculate { 
secondViewController = [[ShowStats alloc] init]; 
secondViewController.firstName = firstPerson.text; 
} 

ShowStats.h

@interface ShowStats : UIViewController{ 

IBOutlet UILabel *nameStats; 
} 
@property (nonatomic, retain) IBOutlet UILabel *nameStats; 
@property (nonatomic, retain) NSString *firstName; 
@property (nonatomic, retain) NSString *secondName; 
@end 

ShowStats.m

- (void)viewDidLoad 
{ 
nameStats.text = [NSString stringWithFormat:@"%@", firstName];  
//secondLabel.text = self.secondName; 


[super viewDidLoad]; 
} 

答えて

1

ShowStatsクラスでこれらのプロパティ

@property (nonatomic, retain) NSString *firstName; 
@property (nonatomic, retain) NSString *secondName; 

を作成し、以下を追加し、ShowStats.hであなたのviewDidLoad

+0

ラベルが – ZachBamberger

+0

チェックすべてのアウトレットが正しく –

0

UILablelにこれらの文字列を設定し、この

-(IBAction)calculate { 
    secondViewController = [[ShowStats alloc] init]; 
    secondViewController.firstName = firstPerson.text; 
    secondViewController.secondName = secondPerson.text; 
} 

にこれを変更します:

@property(nonatomic, copy) NSString* firstName; 
@property(nonatomic, copy) NSString* secondName; 

次の更新/追加:

@synthesize firstName, secondName; 

//... 

- (id) init { 
    if (self = [super init]) { 
     self.firstName = nil; 
     self.secondName = nil; 
     //... 
    } 

    return self; 
} 

- (void) dealloc { 
    self.firstName = nil; 
    self.secondName = nil; 
    //... 

    [super dealloc]; 
} 

- (void)viewDidLoad { 
    //or even better, do this in viewWillAppear instead 
    firstLabel.text = self.firstName; 
    secondLabel.text = self.secondName; 
    //... 


    [super viewDidLoad]; 
} 

最後に、ViewController.mに、このようなcalculateを実装:

-(IBAction)calculate { 
    //Linked to UIButton 
    //This is the first View Controller. 
    // firstName = firstPerson.text; 
    // secondName = secondPerson.text; 
    secondViewController = [[ShowStats alloc] init]; 
    secondViewController.firstName = firstPerson.text; 
    secondViewController.secondName = secondPerson.text; 

    //display the view controller here 

    [secondViewController autorelease]; 
} 
+0

接続されている(ヌル)として表示し、私はすべてのエラーを取得していないです、ありがとう。しかし、ラベルにテキストは表示されません。私はそれにもかかわらず遊ぶつもりです。 – ZachBamberger

+0

@ ZachBamberger - どのように2番目のView Controllerを表示していますか?あなたはその部分のコードを投稿できますか? – aroth

+0

nameStats.text = [NSString stringWithFormat:@ "%@"、self.firstName]; – ZachBamberger

0

それはあなたのSecondViewControllerで、その後のナビゲーションである場合は、呼び出すことができます:

ViewController *viewController = [self.navigationController.viewControllers objectAtIndex:0]; 
firstName = [[viewController firstPerson] text]; 
secondName = [[viewController secondPerson] text]; 

それとも、単一のビューアプリの次の操作を行うことができます:

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
ViewController *viewController = [appDelegate viewController]; 
firstName = [[viewController firstPerson] text]; 
secondName = [[viewController secondPerson] text]; 

* EDIT *

があなたの.hファイルに2つのラベルを追加します(非アトミック、保持)&が.Mで合成します。viewDidLoadのラベルその後、(それらはLABEL1とLABEL2と呼ばれていると仮定して)、それらを設定する初期化します。

[label1 setText:firstName]; 
[label2 setText:secondName]; 
+0

ありがとうございます、私はエラーを取得していません。しかし、ラベルにテキストは表示されません。私はそれにもかかわらず遊ぶつもりです。 – ZachBamberger

+0

それと同様に試してみましょうnameStats.text = [NSString stringWithFormat:@ "%@"、firstName];どちらもうまく動作せず、setTextラベルが空になっています。 stringWithFormatを使用すると、nullとして表示されます。 – ZachBamberger

+0

オーナーをIBのラベルに設定しましたか? – brendan

関連する問題