2016-12-12 16 views
0

別のViewControllerにNSString値を渡そうとしています。しかし、私は値の代わりにnullを取得します。ここに私のコードです。 FirstViewController.m:Objective Cの別のViewControllerにNSString値を渡す

NSString cellID = @"66"; 
    SecondViewController *apiViewController = [[SecondViewController alloc] init]; 
       apiViewController.strMessage=cellID; 
       [self.navigationController pushViewController:apiViewController animated:YES]; 

SecondViewController.h:

@interface SecondViewController : UIViewController{ 
    NSString *strMessage; 

} 
@property(nonatomic,retain) NSString *strMessage; 
@end 

SecondViewController.m:

@implementation SecondViewController 
@synthesize strMessage; 
NSLog(@"%@", strMessage); 
@end 

私が輸入をしました。私はプッシュする前に変数を割り当てました。しかし、それはとにかくnullを返します。これどうやってするの?任意のヒント、アイデア。ありがとうございました。

+0

を試すには、prepareForSegueに見えます。 https://developer.apple.com/reference/uikit/uiviewcontroller/1621490-prepareforsegue –

+0

この件に関するトピックは既にたくさんあります。 8歳の主題について話し合うのは何ですか? –

+0

@ElTomato私はそれらをすべて試してみました。彼らのほとんどはペン先の接続用に書きました。あれ要らない。 – JohnLemon

答えて

0

この

SecondViewController *apiViewController = [[SecondViewController alloc] init]; 
apiViewController.strMessage=cellID; 
[self.navigationController pushViewController:apiViewController animated:YES]; 

を試してみて、あなたはビューコントローラをプッシュする前にプロパティを代入してみ

NSLog(@"%@", self.strMessage); 
0

を印刷します。

NSString cellID = @"66"; 
    LineChartViewController *apiViewController = [[LineChartViewController alloc] init]; 
       apiViewController.strMessage=cellID; 
       [self.navigationController pushViewController:apiViewController animated:YES]; 

さらに、あなたの実装で関数内からNSLogを呼び出す必要があります。 viewDidLoad関数は、たとえばUINavigationControllerスタックにプッシュされているUIViewControllerです。

0

このコード

SecondViewController *apiViewController = [[SecondViewController alloc] init]; 
    apiViewController.strMessage=cellID; 
        [self.navigationController pushViewController:apiViewController animated:YES]; 
関連する問題