gpt4 book ai didi

ios - 将自定义单元格 ImageView 图像传递给新的 View Controller

转载 作者:行者123 更新时间:2023-11-29 03:33:39 25 4
gpt4 key购买 nike

我有一个 View Controller ,其中有一个带有一些自定义单元格的 UITableView

在自定义单元格中,我有一个主要的UIImageView。我向 ImageView 添加了一个点击手势识别器,以便在点击图像时调用 handleImageTap 方法。

问题
我想做的是将所选 UIImageView (从特定单元格)中的图像传递到新的 View Controller 中。

当调用handleImageTap时,我运行以下命令:

UIImageView *imageView = (UIImageView *)gestureRecognizer.view;

// send the image instead of self when firing the segue
[self performSegueWithIdentifier:@"remindMeTurnInfo" sender:imageView];

然后我在 prepareForSegue 方法中有以下内容:

if ([segue.identifier isEqualToString:@"remindMeTurnInfo"]) {
UIImageView *imgView = (UIImageView *)sender;
MESPlayedTurnReminderViewController *VC = segue.destinationViewController;
VC.mainImageView.image = imgView.image;
}

以上不起作用,图像未传递。如何将图像从选定的单元格 ImageView 获取到新 Controller ?

还有
有时,当选择单元格的 ImageView 时,会调用 didSelectRowAtIndexPath 方法。这是不正确的,不应在点击 ImageView 时调用。这似乎并不总是如此,有什么办法可以确保这不会被调用吗?

我还需要对 prepareForSegue 方法中 ImageView 所在的单元格进行引用。当此处实际选择(不应该)单元格时,如何获取 ImageView 所在单元格的引用。

最佳答案

您的问题有 2 个问题。

首先,您不应该使用 TableView 单元格来存储数据。 TableView 单元格是 View 对象。他们显示数据。当用户触发单元格上的操作时,您应该找出单元格的索引路径,使用该信息查找模型中的数据(在您的情况下为所选行或部分/行的图像)并使用该信息.

其次,您永远不应该尝试操纵另一个 View Controller 的 View 。将其他 VC 的观点视为私有(private)观点。这是一件大事。进入另一个 VC 并触摸其 View 违反了两个 VC 的封装,并且意味着进行触摸的 VC 变得依赖于“触摸”的 VC 的外观。坏的。那么你就无法在不破坏其他代码的情况下改变所触摸的 VC 的外观。创建新 VC 后它也无法立即工作,因为它的 View 尚不存在。

相反,您应该将“imageToUse”属性添加到另一个 View Controller ,并在prepareForSegue方法中设置它。然后第二个 View Controller 可以获取图像并将其安装在其 viewWillAppear 方法的 ImageView 中。

关于ios - 将自定义单元格 ImageView 图像传递给新的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459632/

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