gpt4 book ai didi

ios - 如何将值从 TableView 传递到 Collection View

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:42:22 25 4
gpt4 key购买 nike

我使用 SwReveal View Controller 将值从 TableView 传递到 Collection View Controller 。当我在 Collection View 中单击一个单元格时,我存储了 Collection View 单元格的索引路径。但是当我选择一个表并将一个值传递给索引路径 Collection View 时。单元格不显示值。它是空的...这是我的代码

-(void)viewWillAppear:(BOOL)animated{
text=seltext;
NSLog(@"text %@",text);

// HERE I AM GETTING VALUES FROM TABLE VIEW CONTROLLER

self.displayindex=Viewindex;
NSLog(@"self dispaly %@",Viewindex);

// HERE I AM GETTING INDEX PATH OF SELECTED COLLECTION CELL

Cell *cells = (Cell *)[collectionData cellForItemAtIndexPath: self.displayindex];
cells.subjectLabel.text=@"djhfkjdshfjkhd";
cells.cellView.backgroundColor=[UIColor greenColor];
NSLog(@"cell is %@",cells);
NSLog(@"text %@",text);

// CELL IS NULL HERE AND NOTHING IS DISPLAYING EVEN IF I PASS THE CELL FRO ITEM INDEXPATH

}




- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
// we're going to use a custom UICollectionViewCell, which will hold subject and room number
Cell *myCell = [collectionData dequeueReusableCellWithReuseIdentifier:@"TableCell"



forIndexPath:indexPath];
if ((indexPath.row == 20) || (indexPath.row == 21) || ( indexPath.row == 23) || ( indexPath.row == 24))
{
myCell.hidden=YES;
}




// if (indexPath.row < 20 || indexPath.row == 22 )
if (indexPath.row < 10 || (indexPath.row >14 && indexPath.row <20) ||indexPath.row ==22)
{


if (indexPath.row == 0) {
NSArray *Object= [[jsonData valueForKey:@"TimeTabledPeriods"]objectAtIndex:0];


//myCell.roomLabel.text = [NSString stringWithFormat:@"{%ld,%ld}", (long)indexPath.section , (long)indexPath.row];
myCell.roomLabel.text= [NSString stringWithFormat:@"Room: %@", [Object valueForKey:@"RoomDescription"]];

myCell.subjectLabel.text = [Object valueForKey:@"SubjectDescription"];

// myCell.cellView.backgroundColor= [UIColor grayColor];
[myCell.redXbuttonOutlet setTag:indexPath.row];
[myCell.LearningChoiceYellowOutlet setHidden:YES];


[myCell.redXbuttonOutlet addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

}
else (indexPath.row == 1) {

NSArray *Object= [[jsonData valueForKey:@"TimeTabledPeriods"]objectAtIndex:3];
NSLog(@"objectATIndex 3 %@",Object);


//myCell.roomLabel.text = [NSString stringWithFormat:@"{%ld,%ld}", (long)indexPath.section , (long)indexPath.row];
myCell.roomLabel.text= [NSString stringWithFormat:@"Room: %@", [Object valueForKey:@"RoomDescription"]];

myCell.subjectLabel.text = [Object valueForKey:@"SubjectDescription"];
//myCell.cellView.backgroundColor= [UIColor grayColor];
[myCell.redXbuttonOutlet setTag:indexPath.row];
[myCell.LearningChoiceYellowOutlet setHidden:YES];
[myCell.redXbuttonOutlet addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
// ..... some more code here just like above
}


-(void)buttonPressed:(id)sender
{

NSLog(@"tag number is = %d",[sender tag]);
NSLog(@"Button");


//Storing index path when cancel Button is clicked
deletindexpath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
_appDFel.appindex=deletindexpath;

NSLog(@" _appDFel.appindex %@", _appDFel.appindex);


alert =[[UIAlertView alloc]initWithTitle:@"Delete session" message:@"Do you want to delete this session" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
alert.delegate=self;
[alert show];

}




- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"indexpath %@",deletindexpath);
if (deletindexpath!=nil) {

//enabling SWReveal view conttroller after cancel button is clicked

Cell *cells = (Cell *)[collectionData cellForItemAtIndexPath:deletindexpath];

NSLog(@"cell %@",cells.subjectLabel.text);
NSString *textString=cells.subjectLabel.text;
_appDFel.TextString=textString;
cells.subjectLabel.text=@"NOSession";
cells.cellView.backgroundColor=[UIColor redColor];
[cells.redXbuttonOutlet removeFromSuperview];
NSLog(@"swiping is done here");
[self fetchinfOfData];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
//[self performSegueWithIdentifier:@"SwipeLeftSegue" sender:nil];

}

最佳答案

在我的脑海中,我会说你的单元格不存在,你需要分配/初始化它或 dequeueWithReuseIdentifier

此外,您正在使用“Cell”创建您的单元格,而不是 UICollectionViewCell ;这可能是个问题,除非您使用名为 Cell

的自定义单元格

如果这没有帮助,您能否在描述中添加更多代码? cellforrow 和数据传递方法。

关于ios - 如何将值从 TableView 传递到 Collection View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25781219/

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