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

前端之家收集整理的这篇文章主要介绍了ios – 错误:UIView的窗口不等于另一个视图的窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是一名快速学习初学者的程序员.首先发布在这里.

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

一切都很好,它在模拟器中运行正常.但是,我试图添加基本动画(移动UIImageViews),但它们没有执行.我知道我有正确的动画语法,因为我在另一个项目中测试了代码.

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

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

我无法弄清楚它意味着什么,但它似乎没有造成任何问题,除了阻碍动画.有任何想法吗??

看起来这个人有类似的错误信息,但可能比我的应用程序更复杂. Modal viewcontroller UI not responsive after presentViewController:animated:completion:

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

谢谢

解决方法

您似乎对iOS编程范例有一些基本的误解.你有按钮附加segue,但你也可以在代码调用performSegue.如果将segue连接到控件,则不需要任何代码(也不应该有任何代码)来执行segue.除了展开segue之外,你也不应该回到带有segue的前一个视图控制器;你真的没有回头,你正在创建一个你认为你会回到的控制器的新实例.这将导致控制器的建立(因为没有将被解除分配),直到您的应用程序内存不足.

因此,您应该从MainScreen中删除函数letsPlayButton:并在storyboard中删除它(只需附加到该按钮的segue).

删除你从GameScreen“返回”到主屏幕的segue,并将backToMainScreen中的代码更改为,

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

猜你在找的iOS相关文章