我有一個viewController
,它有一個按鈕,當點擊該按鈕時,它會動態地創建對另一個viewController
類的引用,並且在該過程中也爲該設置設置參數viewController
。我對循環做這個裏面如下:如何訪問一個動態傳遞給iOS中的子viewController的參數?
-(void) clickOnButton:(id)sender {
for (PersonObject *checkPerson in [DataModel sharedInstance].personList) {
if (((UIControl*)sender).tag == checkPerson.personID) {
ParentViewController *parentView = [[NSClassFromString(checkPerson.childViewController) alloc] init];
parentView.personName = checkPerson.name;
NSLog(parentView.personName);
[self.navigationController pushViewController:parentView animated:YES];
}
}
}
在時生成的的viewController和該用戶發送到,我有下面的代碼在我viewDidLoad方法:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"Hello %@", personName);
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 150, 35)];
[title setCenter:CGPointMake(self.view.frame.size.width/2, 27)];
[title setBackgroundColor:[UIColor clearColor]];
[title setTextAlignment:NSTextAlignmentCenter];
[title setFont:[UIFont boldSystemFontOfSize:15]];
[title setText:personName];
[self.view addSubview:title];
}
當我運行我的代碼,第一個viewController爲我提供了personName參數的NSLog的正確輸出,但是,第二個viewController語句中的方法viewDidLoad中的NSLog()顯示我的personName值爲零,並且沒有任何顯示爲我的viewController的標題。
參數personName的類型爲NSString,並且在父級viewController類以及子viewController類(有幾個viewController類擴展了這一個父級)中都可以找到。我如何動態創建子viewController對象,並讓它捕獲使用父級viewController發送給它的正確參數值?
它被宣佈爲(非原子,保留) – syedfa
作爲旁白(與你的問題無關),我注意到你宣佈你的財產爲'retain'。如果你使用ARC,你應該用'strong'替換'retain'。如果你沒有使用ARC,那麼你的代碼可能有泄漏,因爲當你''''''''''''''''ParentViewController''時,你應該也可以'autorelease'。 – Rob