2009-11-27 150 views
1

我有在导航控制器根表视图一个应用程序,并在一个表格单元格的选择只显示一个包含一个新视图控制器UIWebView(带有工具栏和导航栏)。scrollsToTop不起作用,找溶液

取决于我如何呈现新的网络视图,该功能,使用户可以在顶部状态栏上点击,并有web视图滚动到顶部,无论是工作还是不工作。

如果我使用:

  • (无效)presentModalViewController:(UIViewController的*)modalViewController动画:(BOOL)在RootView动画

,那么web视图并滚动到顶部。

如果我改变一个代码行,而使用:

  • (无效)pushViewController:(的UIViewController *)的viewController动画:(BOOL)动画

导航控制器上,然后scrollsToTop功能停止工作。

我真正想要的不过使用,在应用程序上下文等原因,是pushViewController方法。但是,我也想保持scrollsToTop行为。

到目前为止我尝试了各种方法,这里的一些描述:

-Attempting设置的WebView内部滚动视图scrollsToTop财产

((UIScrollView *)[[webView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = YES; 

(无明显影响)。

- 更改设置NavBar属性的顺序或者根本不设置任何 - 在新视图推送后添加额外的“窗口makeKeyAndOrderFront”调用。

我不相信还有其他的意见有可能被自称“scrollsToTop”属性(与第一次测试上述证明,在任何情况下)。

短试图嵌入的UIWebView到一个UIScrollView,我希望会是痛苦的,我已经跑了路线的探索,以解决此问题。

我希望别人找到一种方法来纠正这个问题吗?

回答

0

事实证明,这是行不通的,因为我customiing的导航栏的方式。我用一个UIBarButtonItem重写了LeftBarButtonItem,然后占用了整个导航栏(我想我在几个月前从某些Apple代码采取了这种方法,但不确定)。我在另一个视图上使用了相同的方法,并且scrollsToTop在那里工作得很好。

取出代码并将自定义的导航栏视图放入(例如)self.navigationController.titleView而不是解决此问题。我不知道为什么,就像我说的那样,对于其他观点来说它工作得很好。

我浪费了大量的时间与这个问题,所以我希望通过在这里描述它:)

1

尝试使用相反方法作为解决方法。

在根视图控制器:

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    self.tableView.scrollsToTop = NO; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    self.tableView.scrollsToTop = YES; 
} 

再见!

+0

感谢muccy响应救别人一些头发!我看到你要去哪里,也许它的表格的根视图声称scrollsToTop!我怀着很高的期望尝试了这一点,但不幸的是没有效果:-( 非常感谢你的想法,如果你有其他人,不要犹豫,把它们扔掉:) – theLastNightTrain 2009-12-08 11:47:32

+0

这真的很奇怪。 在我正在开发的应用程序中,我有相同的场景(表格视图控制器 - >网络视图[控制器]),我没有问题的状态栏行为... 如果我有一个想法,毫不犹豫地建议你! :) – muccy 2009-12-08 22:51:05