链 UIViewControllers 推送和弹出动画与 UINavigationController 关闭/呈现模式视图?
Posted
技术标签:
【中文标题】链 UIViewControllers 推送和弹出动画与 UINavigationController 关闭/呈现模式视图?【英文标题】:Chain UIViewControllers push and pop animation with UINavigationController dismiss / present modal view? 【发布时间】:2011-01-26 21:15:36 【问题描述】:我有一个带有(导航控制器)的视图控制器,它可以在 2 个视图(列表和地图)之间切换,用户可以在视图之间切换。地图是模态视图。目前我已经使用
当用户选择一个位置时,它将沿层次结构向下移动并显示一些位置详细信息。在这个层次结构中,用户仍然可以选择查看地图。我目前正在使用 UINavigationController 方法 - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 将用户带回根控制器,如果我立即调用 UIViewController 方法 - ( void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated 两个动画一起做,看起来有点乱。
就目前而言,我决定添加一个简短的 NSTimer 来延迟 - (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated 被调用。
我的问题,有没有更清洁的方法呢?我想一个类似的例子是,如果您正在使用 App Store 应用程序并且您已经下载了一个新应用程序。应用商店存在然后动画到应用程序的最后一页(假设您还没有在那里),我正在寻找这种动画风格。
非常感谢
【问题讨论】:
【参考方案1】:您在正确的轨道上,但您可以通过使用跳过使用 NSTimer 的步骤
performSelector:withObject:afterDelay:
...
[self performSelector:showModalController withObject:nil afterDelay:2.0];
...
-(void)showModalController
[self presentModalViewController:myModalViewController animated:YES];
【讨论】:
啊,看起来有点干净,似乎唯一的方法是使用计时器,我想避免它,因为它可能是设备之间的一些细微性能差异。以上是关于链 UIViewControllers 推送和弹出动画与 UINavigationController 关闭/呈现模式视图?的主要内容,如果未能解决你的问题,请参考以下文章