错误:UIView的窗口不等于另一个视图的窗口

我是一个快速学习的初学者程序员。 首先在这里发表。

额外的信息,但可能不必要
在我创build的这个应用程序中,用户在主视图控制器上select一个图像,并将其传递给第二个视图控制器。 在那里图像被分解成碎片,这些碎片被放置在单独的UIImageViews中。 其目的是通过交换图像来使它们以正确的顺序排列。

一切工作正常,它在模拟器中运行正常。 但是,我想添加基本的animation(移动UIImageViews),但他们没有执行。 我知道我有正确的animation语法,因为我在另一个项目中testing了代码。

主要问题
当我从我的主视图控制器导航到第二个视图控制器,一个错误立即出现在控制台。 这就是它说的:

2014-09-04 17:51:33.489 TileGame [79951:95150647] UIView:0x7f7fe9c84600; frame =(0 0; 320 568); autoresize = W + H; 图层= CALayer:0x7f7fe9c848d0 >>的窗口不等于TileGame.GameScreen:0x7f7fe9dc6bc0>的视图的窗口!

我无法弄清楚它是什么意思,但除阻碍animation之外似乎没有引起任何问题。 有任何想法吗??

看起来这个人有一个类似的错误消息,但也许比我的应用程序更复杂。 在presentViewController之后,模态viewcontroller UI没有响应:animated:completion:

这是我在GitHub上的整个项目: https : //github.com/pakalewis/Parker-Lewis-CF/tree/master/TileGame

谢谢

你似乎对iOS编程范例有一些基本的误解。 你有连接到你的button,但你也调用performSegue代码。 当你有一个连接到控件的segue时,你不需要任何代码(也不应该有任何代码)来引起segue执行。 你也不应该回到以前的视图控制器与一个segue,除了unwind segue; 你不是真的回头,你正在创build一个你认为你要回去的控制器的新实例。 这将导致控制器的积累(因为没有将被释放),直到你的应用程序内存不足。

所以,你应该从mainScreen中删除letPlayButton这个函数,并且在storyboard中删除它(附加到那个button上的segue就是你所需要的)。

删除从GameScreen返回到MainScreen的segue,并将backToMainScreen中的代码更改为此,

@IBAction func backToMainScreen(sender: AnyObject) { self.dismissViewControllerAnimated(true, completion: nil) }