私は初心者のiPhone開発者です。
私は2つのクラスを持っています。TestViewController
(これは絵コンテのビューにリンクされています) とViewController
.
クラスからのパラメータとしてメソッド( [tc refresh:val];
)TestViewController
を呼び出そうとしています。に到達したログから確認できますが、何らかの理由でラベルが更新されず、ビューで設定したラベルの現在のテキストも取得できません。それは価値を与えます。私が取得したコードとログを参照してください。 からへのメソッドを呼び出して、ラベルを更新する方法を教えてください。val
ViewController
val
TestViewController
null
VC
TVC
TestViewController.h
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface TestViewController : UIViewController
@property (retain, nonatomic) IBOutlet UILabel *lblDisp;
- (IBAction)chngText:(id)sender;
- (void)refresh:(NSString *)val;
@end
TestViewController.m
#import "TestViewController.h"
#import "ViewController.h"
@implementation TestViewController
@synthesize lblDisp;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"TEST VC LOADED");
NSLog(@"TEXT CUrret VALUE SUPERVIEW %@",lblDisp.text);
}
- (IBAction)chngText:(id)sender {
ViewController *dd=[[ViewController alloc]init];
[dd display];
}
-(void)refresh:(NSString *)val{
NSLog(@"Value of Val = %@",val);
NSLog(@"TEXT CUrret VALUE %@",lblDisp.text);
lblDisp.text=val;
}
@end
ViewController.h
#import <UIKit/UIKit.h>
#import "TestViewController.h"
@interface ViewController : UIViewController
-(void)display;
@end
ViewController.m
#import "ViewController.h"
#import "TestViewController.h"
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"VC LOADED");
}
-(void)display{
NSLog(@"Reached VC");
NSString *val=@"1";
TestViewController *tc=[[TestViewController alloc]init];
[tc refresh:val];
}
@end
ログ
2013-07-24 03:13:36.413 Simple test[38477:11303] TEST VC LOADED
2013-07-24 03:13:36.415 Simple test[38477:11303] TEXT CUrret VALUE SUPERVIEW sdfgdfgd
2013-07-24 03:13:37.909 Simple test[38477:11303] Reached VC
2013-07-24 03:13:37.910 Simple test[38477:11303] Value of Val = 1
2013-07-24 03:13:37.911 Simple test[38477:11303] TEXT CUrret VALUE (null)