如何在另一个视图控制器上向 UInavigationcontroller 显示完整的选定表格单元格
Posted
技术标签:
【中文标题】如何在另一个视图控制器上向 UInavigationcontroller 显示完整的选定表格单元格【英文标题】:How to display complete selected table cell on another viewcontroller via UInavigationcontroller 【发布时间】:2015-11-30 11:06:50 【问题描述】:我以编程方式创建了表格视图,我喜欢在另一个视图控制器上显示相同的选定表格单元格(视图)。我的意思是我喜欢显示的选定的特定单元格视图。我只需要通过导航控制器使用。
- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
WriteSuggestionController *writeSuggst=[[WriteSuggestionController alloc]init];
UITableViewCell *myCell = [theTableView cellForRowAtIndexPath:indexPath];
// Access accessory View as below.
writeSuggst.bottomView=myCell.accessoryView;
[self.navigationController pushViewController:writeSuggst animated:YES];
我看到了一种方法,但是我不知道如何从另一个视图中取回 cel。
【问题讨论】:
你得到了什么?我的意思是您的视图是否导航到另一个视图?它是否显示带有单元格的表格视图? 1.在WriteSuggestionController
中创建一个UITableViewCell
属性,并在推送之前将您选择的单元格分配给它。 2. 不知道为什么你一开始就想这样做。 3. 更好的方法是截取单元格的屏幕截图并将其显示在下一个 VC 中的 imageView 中。
我没有想到.. 当我在 buttomview contoller @user3182143 中传递视图时
您是否将视图导航到 WriteSuggestionController?
@NSNoob 如何在 WriteSuggestionController 中分配该单元格
【参考方案1】:
由于您只想在下一个 View Controller 中显示单元格的内容,因此最好将屏幕截图发送到下一个 View Controller。您可以在 writeSuggst VC 中创建一个名为 cellImg
的属性。同样在您的第一个 VC 中,您需要创建一个名为 viewImage
的 UIImage
类型的强属性。然后这样做:
- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
WriteSuggestionController *writeSuggst=[[WriteSuggestionController alloc]init];
UITableViewCell *myCell = [theTableView cellForRowAtIndexPath:indexPath];
// Access accessory View as below.
UIGraphicsBeginImageContext(cell.contentView.frame.size);
[myCell.contentView.layer renderInContext:UIGraphicsGetCurrentContext()];
self.viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
writeSuggst.cellImg = self.viewImage;
[self.navigationController pushViewController:writeSuggst animated:YES];
在您的 writeSuggst VC 的 viewDidLoad()
中,写下这些行:
UIImageView *myCellImageView = [[UIImageView alloc] init];
CGRect frame = CGRectMake(0,0,yourWidth, yourHeight);//e.g. for a fullscreen width and 30 px height, you will write (0,0,self.view.frame.size.width,30)
myCellImageView.frame = frame;
myCellImageView.image = self.cellImage;
[self.view addSubview:myCellImageView];
【讨论】:
【参考方案2】:在 WriteSuggestionController 中创建一个属性,
@property (assign/copy) UITableViewCell *destCell;
然后,在推送视图控制器之前,将 myCell 值设置为 destCell。
writeSuggst.destCell = mycell;
[self.navigationController pushViewController:writeSuggst animated:YES];
【讨论】:
我确实喜欢,但它不会在第二个 VC 的位置之上以上是关于如何在另一个视图控制器上向 UInavigationcontroller 显示完整的选定表格单元格的主要内容,如果未能解决你的问题,请参考以下文章
如何在另一个视图控制器中访问 SpriteKit 场景的变量?
如何将图像设置为在另一个视图控制器中异步获取的 UIImageView?