2011-08-22 104 views
0

我想從一個字符串中的數據分配給另一個不同的viewcontroller內的另一個字符串,但它似乎不保留數據 - 我在NSLog中得到一個空響應。我想知道爲什麼,謝謝..NSString值不保留

+0

也許是因爲viewDidLoad在'schoolController.courseDetails = @「傳遞新內容之前被解僱了''line –

回答

1

試着改變一下,下面的順序,並用保留而不是複製:

SchoolDetailViewController *schoolController = [[SchoolDetailViewController alloc]initWithNibName:nil bundle:nil]; 
schoolController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
schoolController.courseDetails = @"passing new content"; 
[self presentModalViewController:schoolController animated:YES]; 
NSLog(@" %@",schoolController.courseDetails); // 'passing new content' is shown 

.h 
    NSString *courseDetails; 
@property (nonatomic, retain) NSString *courseDetails; 

.m 
@synthesize courseDetails; 

- (void)viewDidLoad { 

    NSLog(@" text : %@",courseDetails); // returns null ... why? 

    [super viewDidLoad]; 
} 

這應該工作。

+0

這樣一個愚蠢的錯誤..謝謝。 –

0

那是因爲viewDidLoad方法是在您使用或不使用動畫呈現視圖控制器時調用的。

所以只需扳動這2所陳述

[self presentModalViewController:schoolController animated:YES]; 
schoolController.courseDetails = @"passing new content"; 

這樣

schoolController.courseDetails = @"passing new content"; 
[self presentModalViewController:schoolController animated:YES]; 

然後再次檢查結果...