我正在嘗試使模態視圖顯示我的應用程序的冠軍。 在模態視圖中有一個名爲champ的NSMutableString變量, 應該由主視圖中的returnChamp函數更新。 champ字符串在主視圖中正確設置, 但在模態視圖中,champ值顯示爲(null)。其實,它似乎甚至沒有進入returnChamp函數。 所以顯然是我的調用或實現returnChamp, 有什麼問題,但我有另一個功能,做了類似的工作很好。更新模態視圖變量的值
任何人都可以請幫我嗎?
-(void) mainView{
.....
champ = [[currentPlayers objectAtIndex:playerIndex] retain];
NSLog(@"%@",champ);
modalWinner = [[winner alloc] init];
modalWinner.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:modalWinner animated:YES];
}
- (NSMutableString *) returnChamp{
NSLog(@"returnChamp");
return champ;
}
//in modalWinner
-(void) modalView{
..............
champName = [[NSMutableString alloc] init];
NSLog(@"%@", [(MainViewController *)self.parentViewController returnChamp]);
champName = [(MainViewController *)self.parentViewController returnChamp];
UIImage *champImage = [UIImage imageNamed:champName];
}
謝謝你的回答。但有什麼其他方式可以從mainview更新champName? – CosmicRabbitMediaInc 2011-03-06 19:27:26
有幾種可能的方法 - 可能最簡單的方法是在呈現控制器之前向獲勝者視圖控制器添加屬性(例如「分數」)並設置modalWinner.score的值。如果需要執行任何代碼來處理值的顯示,您可以將其置於viewWillAppear中。 – 2011-03-06 19:40:23
謝謝你的回覆。我試過modalWinner.champName = champ;從主視圖,但它給了我「對象不能設置 - 只讀屬性或找不到setter」錯誤...如果我要在viewWillAppear的模態視圖中設置值,我將如何從主視圖訪問它? – CosmicRabbitMediaInc 2011-03-06 19:52:49