Ios 在Swift中使用prepareforsgue

Ios 在Swift中使用prepareforsgue,ios,iphone,swift,segue,Ios,Iphone,Swift,Segue,我试图在点击UIView时创建一个Segue,该Segue会导致一个新视图控制器的Segue,该控制器保存点击的UIView。基本上只需要半个屏幕的UIView,并使其与整个屏幕一样大 我想我应该使用prepareForSegue将我点击的UIView传递给新的视图控制器,而不是创建一个新的视图,但是我不确定prepareForSegue是否应该自动生成,以及它应该在哪里。我将点击手势链接到打开新视图控制器的“显示”序列。我认为prepareForSegue是在Objective-C中自动生成的

我试图在点击UIView时创建一个Segue,该Segue会导致一个新视图控制器的Segue,该控制器保存点击的UIView。基本上只需要半个屏幕的UIView,并使其与整个屏幕一样大

我想我应该使用prepareForSegue将我点击的UIView传递给新的视图控制器,而不是创建一个新的视图,但是我不确定prepareForSegue是否应该自动生成,以及它应该在哪里。我将点击手势链接到打开新视图控制器的“显示”序列。我认为prepareForSegue是在Objective-C中自动生成的,所以我不确定是否应该使用它


另一个想法是,它可能在轻拍手势的动作功能中,但我不确定这是比PrepareForegue更好还是更差。我看到的问题是,无法获得我要移动到的新视图控制器的引用。

关于您所述内容的一些评论

我想我应该使用PrepareForsgue来传递我点击的UIView 新视图控制器,而不是创建新视图

您不会将UIView传递给新的视图控制器。将要显示的UIImage传递给新的视图控制器

我将点击手势链接到打开新视图控制器的“显示”序列

这是一个很好的开始,还要确保您附加了手势的UIImageView在情节提要中将其“用户交互启用”标志设置为true(我一直都忘了这个)

你必须自己为赛格做准备。您想将prepare for segue方法放入origination view控制器

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected UIImage to the new view controller.
}

一个选项可能是将UIStoryboardSegue子类化,并将其用作自定义segue。这样,您就可以获得fromVC和toVC的句柄,以及其中的任何视图,用于控制segue的外观和工作方式

苹果文档:


我发现了一个小例子:

我不知道你说的“自动生成”是什么意思。您必须自己实现prepareForSegue,但在启动segue时系统会调用它(您自己不调用它)。请注意,如果要传递视图本身,则需要首先将其从其superview中删除--它不能同时位于2个视图控制器中。通过“自动生成”,我的意思是它将自动位于视图控制器代码(方法签名)中,但我必须自己实现它。但是,我不确定它是否适用于这里,因为我不知道是否应该使用prepareForSegue或UITapGestureRecognitizer操作来切换控制器。我的意思是我希望prepareForSegue方法签名自动生成。此外,我希望UIView能够在segue发生之后(而不是之前)绘制。UIImage允许这样做吗?在我看来,UIImage是不可修改的。另一个选择是,我为新的视图控制器生成了一个不同的UIView,然后可以在segue之后绘制它。我以为您正在显示一个图像。。。无论如何,您在UIView中显示的任何数据都需要传递给新的视图控制器。您不能传递UIView本身。