popViewController/viewWillAppear中没有的iOS 5
动画我不幸运,寻找这一点,所以在这里我们去)popViewController/viewWillAppear中没有的iOS 5
我有一个UIViewController
使用自定义UINavigationBar
其推动另一UIViewController
作为子视图。
一切正常,除非我点击子视图上的返回按钮。预览(第一个)视图正确显示,但不是动画。 UINavigationBar
的动画是正确的,只有视图立即切换。
第一个UIViewController
的功能- (void)viewWillAppear:(BOOL)animated
被NO
调用为animated
。这只发生在我用iOS 5测试时,而不是用iOS 4.
有没有人知道如何解决这个问题?
感谢您的帮助!汉纳斯
更新1
我只是删除所有的自定义代码,只是使用普通UINavigationBar
(所以没有额外的设置),它仍然无法与iOS 5的工作这是我的代码中使用第一视图控制器推第二的ViewController:
[self.navigationController pushViewController:secondViewController animated:YES];
正如我已经提到的 - 当我点击第一个视图立即出现无动画第二视图导航栏中的后退按钮。
任何帮助,将不胜感激!谢谢!
更新2
我觉得我越来越接近问题,但仍然没有解决:
我只是增加了一个自定义的UINavigationController
,我只是叫[super popViewControllerAnimated:animated]
。这个get的被正确调用(动画是YES),但第一个UIViewController
的viewWillAppear
获得NO作为动画的值...
我今天有一个类似的问题,其中UIViewController
在viewWillAppear
中获得了否,除了使用标准UINavigationBar
和UINavigationController
。
原来,这是由于手动呼叫viewWillAppear:YES
本应该不应该的地方。 This item暗示它也可能是由于在某处(例如,在某个地方调用错误的super
方法)造成的。[super viewWillAppear:animated]
而不是[super viewDidAppear:animated]
内部的viewDidAppear
)。
对于使用自定义UINavigationBar
,我碰到这个链接今天,可以帮助你的情况下跑:http://sloshire1.posterous.com/simple-fix-for-viewwillappear-in-ios5
Apple实施了官方方式在iOS 5中创建自定义导航条。不幸的是,它们也打破了大部分在iOS 4中使用非官方方式。iOS 5不会再为您调用drawRect。你需要有两种方式来完成这个任务,一个用于iOS 5或更高版本,使用新的调用,另一个用于iOS 4和更早的版本,使用旧的调用。查看iOS 5自定义导航栏的文档以获取更多信息。
嗨欧文,感谢对进入这个。我将UINavigationBar分类并将其链接到.xib文件中以获得自定义标头 - 它适用于iOS 4和5.尽管如此,我只是删除了自定义的“UINavigationBar”,只是常规的标签栏,效果仍然相同,视图动画在显示子视图时正确,但在单击后退按钮时立即切换。 – Hannes 2012-01-17 22:36:51
您是否尝试删除所有自定义代码并使用本地导航栏?行为是否保持不变?通过这种方式,您可以检查自定义栏是否与转换混淆。
谢谢,我只是这样做,但仍然第一个视图出现没有动画...我更新了我的问题。 – Hannes 2012-01-20 09:13:05
哦,天啊,谢谢sooomuch!我正在与这个疯了!我刚刚发现在我的自定义“UITabBarController”的'viewDidAppear'中有'[super viewWillAppear]'。再次感谢! – Hannes 2012-01-20 22:16:41
@Hannes感谢它对我有用@Hannes是否使用了'Rumex CustomTabbar(RXCustom Tabbar)'我只隐藏了我的自定义UITabBarController的viewDidAppear中的[super viewWillAppear]。这是否会造成任何问题?这是什么问题? – 2012-07-17 10:42:16
@Hannes我正在打开'现在的模态viewcontroller'在那个时候我越来越同样的问题。你有什么主意吗? – 2012-07-17 10:45:50