0

編集:

ビューにテキストフィールド、ボタン、ラベル、もう一方のビューにラベルがあり、それらは異なるviewControllersによって制御されます。コードでは、テキストフィールドの浮動小数点値を取得して文字列に変換し、これを配置します2 つのラベルに紐付けます。しかし、問題は、テキストフィールドとボタンを持つビューのラベルだけがそれを受け取り、他のビューにある他のラベルは何も受け取らないことです!

最初の.h

    #import <UIKit/UIKit.h>

@interface NotasFirstViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITextField *tfield;
- (IBAction)calcular:(id)sender;
-(IBAction)clicarFora:(id)sender;
-(IBAction)tirarteclado:(id)sender;
@property (strong, nonatomic) NSString *valorstr;
@property (strong, nonatomic) IBOutlet UILabel *mostradordeteste;
@end

最初の.m

#import "NotasFirstViewController.h"
#import "NotasSecondViewController.h"

@interface NotasFirstViewController ()

@end

@implementation NotasFirstViewController
@synthesize valorstr;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)calcular:(id)sender {

    float valor = [_tfield.text floatValue];
    NSString *valorstr = [[NSString alloc] initWithFormat:@"%.2f", valor];
    NSLog(@"%.2f", valor);
    NSLog(valorstr);
    _mostradordeteste.text = valorstr;
    NotasSecondViewController *second = [[NotasSecondViewController alloc] init];

}

-(IBAction)clicarFora:(id)sender{

    [_tfield resignFirstResponder];

}
-(IBAction)tirarteclado:(id)sender{

    [sender resignFirstResponder];

}


@end

秒.h

#import <UIKit/UIKit.h>

@interface NotasSecondViewController : UIViewController{

    NSString *valorclasstwo;
    IBOutlet UILabel *classe2labelvalor;

}

@end

秒.m

#import "NotasSecondViewController.h"
#import "NotasFirstViewController.h"

@interface NotasSecondViewController ()

@end

@implementation NotasSecondViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
-(void)teste{

    NotasFirstViewController *n1 = [[NotasFirstViewController alloc] init];
    valorclasstwo = [n1 valorstr];
    classe2labelvalor.text = valorclasstwo;
}

@end

接続先

接続秒

4

3 に答える 3

0

まず、コンセントがラベルに設定されているかどうかを確認してください。問題がなければ、最初に XIB を使用してラベルの値を指定し、1 つの静的な値が来ていることを確認します。値が正しい値を取得している場合、あるView Controllerから別のView Controllerに値を渡すときに問題があります。適切な方法で作成propertyしたことを確認してください。

@property (nonatomic, strong) NSString *strLabel;

そして、@synthesizeそれを.mファイルに適切に入れます。これを行った場合は、コードをデバッグし、値をこのビュー コントローラーに渡します。

もう1つ、このように最初のView Controllerから値を設定します。

WebLinkViewController *sampleView = [[WebLinkViewController alloc] init] ;
sampleView.stringTitle = strTitle;
[self.navigationController pushViewController:sampleView animated:YES];

この方法で行うと、別のView Controllerでも値が得られます..を使用してコードをデバッグする必要がありますbreakpoint. これがあなたを助けることを願っています。

于 2013-01-10T05:40:37.013 に答える
0

Interface Builderでラベルのバインディングを確認してください

于 2013-01-10T05:16:02.197 に答える
0

両方のラベルのコンセントが正しく接続されているかどうかを確認します (黒い円)。円が塗りつぶされていない場合は、何かが間違っています。

于 2013-01-10T02:16:59.420 に答える