【问题标题】:How to animate a detailViewController view without UINavigationController?如何在没有 UINavigationController 的情况下为 detailViewController 视图设置动画?
【发布时间】:2010-11-13 05:37:30
【问题描述】:

在 iPad 应用程序中,我有一个 tableView 作为顶级 viewController 的子视图 - 我们称之为 topVC。 tableView 由一个专用的 viewController 控制,tblVC,它是topVC 的一个属性。我需要 tableView 来支持 iPhone 风格的 detailView 导航。

在 IB 的 topVC.xib 中设置 UINavigationController 属性,将 tblVC 连接为 rootViewController,但不起作用,所以我在 topVC viewWillAppear: 中以编程方式设置了 UINavigationController 初始化它tblVC 作为 rootViewController,并将其视图设置为 topVC 的子视图。这可以正常工作,但在旋转到横向时,navigationController 的 navigationBar 会弹出到topVC 视图的顶部。

是否可以在没有UINavigationController、使用UINavigationBarUINavigationItem 的情况下手动实现detailView 导航和基本的iPhone 式滑入动画?我想过将detailView设置在tableView的框架之外并手动将其滑入,但这只会使其出现在另一个子视图上并滑入tableView。如何做到这一点?

【问题讨论】:

    标签: ios uitableview uinavigationcontroller


    【解决方案1】:

    您可以考虑使用弹出视图控制器,并在其中托管一个标准 UINavigationController,其中包含您的 UITableViewController。

    否则,您将不得不推出自己的导航控制器。我发现它是一个真正的 PITA,它可以改变/影响你所看到的一些先天行为,比如在旋转时重新定位。

    【讨论】:

    • 在 topVC 子视图中使用位于 tableView 上方的 UINavigationBar(而不是使用 UINavigationController 进行配置)解决了方向更改问题,即 iOS 按预期重新流动/重新调整子视图的大小。弹出框是一个很好的替代建议,但不是我所追求的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多