【问题标题】:UITableView does not work after switching rootViewController?切换rootViewController后UITableView不起作用?
【发布时间】:2012-01-02 15:34:15
【问题描述】:

我找不到任何我能理解的关于切换视图的教程,但我发现我可以通过更改窗口的 rootViewController 属性来切换它们。

问题是我的另一个视图中有 2 个 UITableViews,但是当控制器刚刚变成 rootViewController 时,它们不会响应滑动,但是在我将 ipad 转动 90 度后,视图变为横向然后它开始工作了。

谁能告诉我在加载视图时如何让它们工作?

【问题讨论】:

    标签: iphone ios ipad xcode4 ios5


    【解决方案1】:

    您不能直接更改windows rootViewController property 并让它工作,因为系统不会收到更改发生的通知。这就是为什么只有在系统再次请求该视图时更改才会生效。
    您需要使用一种方法来更改它。根据您的架构,您可能希望使用来自UIViewController的方法

    transitionFromViewController:toViewController:duration:options:animations:completion:
    

    UINavigationController

    setViewControllers:animated:
    

    UIView

    transitionFromView:toView:duration:options:completion:
    

    【讨论】:

    • 实际上,UINavigationController 的更好方法是使用pushViewController:animated:popViewControllerAnimated:(或popToViewController:animated:popToRootViewControllerAnimated:)。但是为“系统未收到通知”+1
    • @FelipeSabino - 我完全同意 pushpop 更好地使用 UINavigationController 构建视图层次结构,但从问题中我的印象是他想更改根而不是构建视图层次结构。
    • 嗯,很好观察。所以,设置控制器堆栈绝对是要走的路;)
    • 其实我前几天就开始写ios了,由于ios4-ios5的差异,我经常没看教程。所以我只是想弄清楚如何以最好的方式从一个视图更改为另一个视图。
    • @user1126446 在 iTunesU 上有非常好的教程,是 Apple 员工在 iPhone / iPad 开发方面提供的斯坦福课程。最新的一个涵盖了 iOS 5 的功能。
    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2017-09-03
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多