pak*_*aka 12 xcode window uiview ios swift
我是一名学习迅捷的初学程序员.首先发布在这里.
额外信息但可能没有必要
在我创建的这个应用程序中,用户在主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>的视图窗口!
我无法弄清楚它意味着什么,但它似乎没有造成任何问题,除了阻碍动画.有任何想法吗??
看起来这个人有类似的错误信息,但可能比我的应用程序更复杂.模态viewcontroller UI在presentViewController之后没有响应:animated:completion:
这是我在GitHub上的整个项目:https://github.com/pakalewis/Parker-Lewis-CF/tree/master/TileGame
谢谢
rde*_*mar 34
您似乎对iOS编程范例有一些基本的误解.你有按钮附加segue,但你也可以在代码中调用performSegue.如果将segue连接到控件,则不需要任何代码(也不应该有任何代码)来执行segue.除了展开segue之外,你也不应该回到带有segue的前一个视图控制器; 你真的没有回头,你正在创建一个你认为你会回到的控制器的新实例.这将导致控制器的建立(因为没有将被解除分配),直到您的应用程序内存不足.
因此,您应该从MainScreen中删除函数letsPlayButton:并在storyboard中删除它(只需附加到该按钮的segue).
删除你从GameScreen"返回"到主屏幕的segue,并将backToMainScreen中的代码更改为,
@IBAction func backToMainScreen(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)