2

我有這個視圖控制器與分頁的UIScrollView。具體來說,這個滾動視圖有3頁,我希望它從第二頁開始。所以,當視圖加載我調整內容偏移在第二頁開始:從UINavigationBar彈出視圖控制器時UIScrollView錯誤

CGFloat offsetX = _pageWidth * SECOND_PAGE; 
[_scrollView setContentOffset:CGPointMake(offsetX, 0) animated:YES]; 

但是,當我打在UINavigationBar的「後退」按鈕,UIScrollView的是不是在第二頁,發生錯誤。

堆棧跟蹤顯示導航控制器在滾動視圖中刪除了視圖,deallocs,調用方法removeFromSuperview,之後UIScrollView調用adjustContentoffsetIfNeccesary--->notifyDidScroll。所以我認爲發生的事情是UIScrollView想要通知UIScrollView代表已經發生了滾動,但代表已經發布了,並且發生了EXC_BAD_ACCESS

因此,任何人都知道實現我想要的行爲的正確方法是什麼?

這裏的堆棧跟蹤我談到:

#1 0x0075595b in -[UIScrollView(UIScrollViewInternal) _notifyDidScroll]() 
#2 0x0073fc43 in -[UIScrollView setContentOffset:]() 
#3 0x0075ccae in -[UIScrollView(UIScrollViewInternal) _adjustContentOffsetIfNecessary]() 
#4 0x00758b46 in -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:]() 
#5 0x00758bda in -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:]() 
#6 0x0074069e in -[UIScrollView removeFromSuperview]() 
#7 0x0071a715 in -[UIView dealloc]() 
#8 0x00718124 in -[UIView release]() 

感謝。

+0

你嘗試啓用殭屍嗎? http://stackoverflow.com/questions/5386160/how-to-enable-nszombie-in-xcode – rounak

+0

我有同樣的問題,弄清楚如何解決這個問題?謝謝 –

回答

0

你可以清除_scrollView的代表;

[_scrollView setContentOffset:CGPointMake(offsetX, 0) animated:NO]; 

動畫結束的時候,scrollViewDidScroll叫,你可以使用_scrollView的代表,但它dealloced這成爲一個野指針。

相關問題