Xcode:无法访问另一个类的NSString值集

时间:2012-12-17 17:12:10

标签: xcode nsstring

我正在尝试将一个字符串变量从mainVC类传递给detailVC类,但是当启动viewDidLoad时,myStringLabel为空,它应该包含“Just a test”。 我不知道为什么。

mainVC.m

#import "mainVC.h" 
@implementation mainVC 
@synthesize 

-(IBAction) openSecondController {
    //Ouverture de DetailVC
    detailVC *dVC = [[detailVC alloc] init];
    dVC.myStringLabel=@"Just a test";
    NSLog(@"dVC.myStringLabel before calling dVC :%@", dVC.myStringLabel);
    [self performSegueWithIdentifier:@"progDetailSegue" sender:nil];
    NSLog(@"dVC.myStringLabel after calling dVC :%@", dVC.myStringLabel) ;   
}    

detailVC.h

#import <UIKit/UIKit.h>
@interface detailVC : UIViewController {
 NSString *myStringLabel;
 IBOutlet UILabel *labelForString;
}
@property (nonatomic, strong) UILabel *labelForString;
@property (copy) NSString *myStringLabel;

detailVC.m

#import "detailVC.h"

@implementation detailVC
@synthesize myStringLabel, labelForString;

-(void) viewDidLoad {
NSLog(@"myStringLabel in viewDidLoad : %@", dVC.myStringLabel) ;
labelForString.text=myStringLabel;
}

-(IBAction) closeViewController {
//Fermeture com_mobilizProgramDetailViewController ouverte en Modal. 
[self dismissViewControllerAnimated:YES completion:nil];

}

NSLOG输出:

2012-12-17 11:48:58.520 DataTransfert[5068:f803] dVC.myStringLabel before calling dVC : Just a test
2012-12-17 11:48:58.520 DataTransfert[5068:f803] myStringLabel in viewDidLoad : (null)
2012-12-17 11:48:58.520 DataTransfert[5068:f803] dVC.myStringLabel after calling dVC :Just a test

3 个答案:

答案 0 :(得分:0)

在viewDidLoad中,用self.mystringlbl替换dvc.mystringlbl

答案 1 :(得分:0)

@iVishal:

我创建了一个像这样的对象ID:DKg-dG-bO1

对于viewController,你在说什么?

答案 2 :(得分:0)

问题解决了。

我使用了另一个解决方案: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

在显示viewController以在veiwcontrollers之间传递数据之前调用

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
detailVC *dVC = [segue destinationViewController];
dVC.myStringLabel=@"Just a test";
}

然后它的作品! 在日志输出中,我得到了这个结果:

myStringLabel in viewDidLoad : Just a test
@ iVishal试图帮助我很多。

祝新年快乐!