gpt4 book ai didi

ios - UICollectionView:didSelectItemAtIndexPath: 如何根据选择用数据填充新 View ?

转载 作者:行者123 更新时间:2023-11-29 10:47:57 25 4
gpt4 key购买 nike

这是交易:

我有一个 UICollectionView,它从一个对象数组中填充自身。我希望能够在我的 UICollection View 中点击表示对象的 View 之一,然后转到一个新 View ,显示我在 UICollectionView 中选择的对象的详细信息(例如所选对象的 ID)。

不幸的是,无论我尝试设置什么总是空的!

这是对象:

@interface obj : NSObject

@property (nonatomic, strong) NSString *objId;
...
@property (nonatomic, strong) NSString *imageURL;

@end

这是主视图 Controller :

@interface ViewController : UIViewController <UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>

@property (weak, nonatomic) IBOutlet UICollectionView *badgesCollectionView;
@property (strong, nonatomic) NSArray *objArray;
...

@end

这是详细 View :

@interface DetailViewController : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *objId;

@end

这是我尝试填充详细 View 的地方(在我的主 ViewController.m 中)

// Implement action for object selection
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{

DetailViewController *detailView = [[DetailViewController alloc] init];

detailView.objIdLabel.text = [[self.objArray objectAtIndex:indexPath.row] objId];

[self.navigationController pushViewController:detailView animated:YES];

NSLog(@"Object Selection: Report");
NSLog(@"Label Text : %@", detailView.objId.text);
NSLog(@"Id of object : %@", [[self.objArray objectAtIndex:indexPath.row] objId]);

}

当我在 UICollectionView 中选择一个对象时,我会过渡到一个没有填充任何内容的 detailView。这是记录的内容:

Object Selection: Report
Label Text : (null)
Id of object : f0f47920-f449-4fd0-a74e-804546905437

对此的任何见解都会很棒。谢谢!

最佳答案

UILabel 的文本字段的输出为空,因为在加载 View 之前标签属性实际上并未链接到任何内容。在这种情况下,只有在您推送 View 之后才会发生。为了解决这个问题,您可以在 DetailViewController 上设置一个属性,该属性在 View 出现之前保存字符串。

然后在 viewDidLoadviewWillAppearDetailViewController 中,你可以将 objIdLabel 上的文本设置为属性包含字符串

关于ios - UICollectionView:didSelectItemAtIndexPath: 如何根据选择用数据填充新 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com