链 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 关闭/呈现模式视图?的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController 推送和弹出中的问题

java 堆栈 - 推送和弹出操作

golang 可以推送和弹出的intlist

TabBarController + NavigationController:推送和弹出问题

如何设置推送和弹出视图控制器流程

C-字符推送和弹出操作[关闭]