情况如下,创建了一个视图A,并对A进行了平移(通过设置bounds的原点实现,因为transform会导致frame变化)
然后进行presenModalViewController弹出模态窗口,然后dissModalViewController以返回原视图。
问题是,返回原视图A后,平移操作效果消失,A视图又恢复了平移前的模样。请问有没有方法可以阻止这种恢复操作?
PS:个人试过在viewDidDisappear中记录A的bounds,然后在viewWillAppear中进行恢复可以得到类似效果。但貌似
不稳定,所以如果有更标准或更好的解决方案将不胜感激。

解决方案 »

  1.   

    有没有勾选 Resize View from Nib ? 默认是勾选的,你取消掉试试看?
      

  2.   


    我用的是 Xcode4.2 ,builder里没有Resize View from Nib这一项呀,具体对应的是UIViewController的那个方法或属性呢?
      

  3.   

    autoresizesSubviews = NO ;
      

  4.   

    有点眉目了,发现如果设置UIViewController.modalPresentationStyle 为 UIModalPresentationCurrentContext,则模态视图dismiss时不会改变父视图的bounds。但相应地又产生了另外的问题:窗口弹出的过渡动画效果没有用了。再研究研究,谢谢大家~
      

  5.   

    发现用普通方法还是难以解决,但十分有趣的是如果先实例化一个UINavigationController,然后将自己的ViewController push 进去。这样的话,再使用ModalView没有任何问题,不会出现dismiss后父视图恢复bounds的情况。所以目前我用一个navigationBar看不见的NavigationController来规避了这个问题……很恶心,但以后对ios底层更熟悉后再回来解决吧,下来再说。