我在视图控制器中放置了一个 UIcollectionview(成功运行)。我想打开另一个视图控制器并使用选定的单元格文本更新此 vc 中的标签。我正在使用以下代码,但它不起作用(不更新其他 vc 中的标签):
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
// gorseldetay is another viewcontroller including a label and an image
NSLog(@"Row : %d , Section : %d", indexPath.row, indexPath.section);
[self performSegueWithIdentifier:@"showDetail" sender:self];
gorselDetay *g = [self.storyboard instantiateViewControllerWithIdentifier:@"gorselDetay"];
NSLog(@"%@",g.mylabel2.text); // returns "null"
g.mylabel2.text = @"any text to update";
NSLog(@"%@", g.mylabel2.text); // returns "null"
}
我还添加了 prepareForSegue 动作
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"%@", segue.identifier); // returns "showDetail", OK
if ([[segue identifier] isEqualToString:@"showDetail"])
{
UIImage *imageim2 = [UIImage imageNamed:@"anyimage.png"]; //this file exists
gorselDetay *r1 = (gorselDetay * )[segue destinationViewController];
[r1.mylabel2 setText:@"any text to update"];
r1.gorselim.image = imageim2;
NSLog(@"2 - %@", r1.mylabel2.text); // returns "null"
}
}
正如我上面所说,UICollectionView 已成功填充并且工作正常,但另一个视图控制器(名为 gorselDetay)中的标签未更新。但是gorselDetay vc顺便成功打开了。
谢谢你的帮助。