2009-11-27 186 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