2

페이징 된 UIScrollView 가진이보기 컨트롤러가 있습니다. 특히이 스크롤보기에는 3 페이지가 있으며 두 번째 페이지에서 시작하고 싶습니다. 뷰로드 내가 두 번째 페이지에서 시작하는 오프셋 내용 조정 그래서 :팝업보기 컨트롤러에서 UINavigationBar 때 UIScrollView 오류

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

을하지만이 UINavigationBar의 "뒤로"버튼을 누르면하고있는 UIScrollView가 두 번째 페이지에 있지 않을 때 오류가 발생합니다 .

스택 추적은 스크롤 뷰에서 메서드 removeFromSuperview의보기, deallocs, 호출을 제거하고이 후에 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된다.

관련 문제