2011-03-16 25 views
0

我的iphone应用程序有一个UIViewController下的用户窗体。当iphone应用程序从后台启动时UIView发生变化

当我退出应用程序(转到后台模式)并再次启动应用程序时,我的某些UIView会更改其位置和大小。 (这些UIViews取决于键盘位置) 肯定某处是我的错。

我尝试了解当应用程序从后台重新启动并且可以完成更改的位置时发生了什么。

也许你可以建议任何链接阅读。

谢谢。

+1

有点代码会帮助我们很多,它不会伤害你发布一些代码ryt? – visakh7 2011-03-16 11:41:21

回答

1

UIViewController的viewDidLoadviewWillAppear方法每次从内存中转储视图时都会调用,这种情况通常在应用程序进入后台时发生。根据您的代码,您可能存储了一些未清除的位置数据。如果是这样的话,你可以:

  1. 更改您的代码以更好地适应了Model-View-Controller模式,这样的定位代码和变量都在控制器和你进行相应的清理东西在其'viewWillDisappear and viewDidUnload`方法(更好的方法),或者

  2. 清除应用程序委托的applicationWillEnterBackground方法中遗留的任何残留物。

+0

这就是问题所在。我的UIViewController不会调用'viewDidLoad','viewWillAppear'等等。当应用程序转到后台并重新启动时,我不会收到这些调用。我只在应用程序委托中获得'applicationDidEnterBackground:'。 – sinoptic 2011-03-16 12:06:41

+0

嗯。然后它听起来像我们需要看到一些代码。 – 2011-03-16 12:15:39

相关问题