2014-12-04 48 views
0

我遇到了一個問題,當我在下面的視圖中突出顯示的表格視圖中上下滾動時,它可以適用於上下滾動的幾個滾動條,然後看似隨機地滾動回到視圖之前(但不不會更新屏幕,使它看起來卡在表格視圖中)有時在第一次滾動時,它也會彈出視圖。爲什麼我的導航視圖彈出?

storyboard 我真的不想發佈我的整個班級,除非有人認爲這是必要的,但我會很感激,如果有人能指出我爲什麼會發生這種事情正確的方向。

- (void) viewWillDisappear:(BOOL)animated 
{ 
NSLog(@"Is this being dismissed: %d", [self isBeingDismissed]); // returns 0 
NSLog(@"isMovingFromParentViewController %d", [self isMovingFromParentViewController]); // returns 0 
NSLog(@"viewWillDisappear occured on bookmark table"); 
} 

-(void)willMoveToParentViewController:(UIViewController *)parent { 
NSLog(@"This VC has has been pushed popped OR covered"); // this is happening 
if (!parent) 
    NSLog(@"This happens ONLY when it's popped"); // this is happening 
} 

任何人都可以告訴我一種方法來找出什麼是調用willMoveToParentViewController或viewWillDisappear?我已經在調試日誌,停頓一下,但它只是說

之前willMoveToParentViewController斷點這顯示在線程1

0 [bookmarkTableViewController willMoveToParentViewController:] 
1 _popViewControllerNormal 

上viewWillDisappear

斷點
0 [bookmarkTableViewController viewWillDisappear:] 
1 [UIViewController _setViewApppearState:isAnimating:] 

所以作爲總結,我可以很好地使用它上下滾動10次,然後它會發生,或者它會在第一次滾動時發生,所以它對我來說看起來是隨機的。如果有人認爲它會幫助我分享我的整個班級,它會有所幫助,但它幾乎只是一個通用的表格視圖。

編輯

我發現它與segue有關。

當我只是'Show(例如Push)'繼續時,它讓我有導航後退按鈕,但崩潰。當我做'顯示詳細信息(例如替換)'時,它從不崩潰導致我認爲我可以僞造導航後退按鈕,但真的我想知道爲什麼會發生這種情況。

編輯2:

我注意到,即使有一個空白表列表,所以它沒有任何與發生的問題。當我在完全空的新表格視圖控制器上滾動滾動時,它確實會做同樣的事情。

enter image description here

出於某種原因,滾動起來,在滾動區域向下,最終鎖定的tableview UI和調用以前的視圖控制器viewWillAppear中

編輯3:

我想可能有一些做與導航控制器,我剛剛剝離Hte項目到它的裸露骨頭,我注意到有時,而不是表滾動它正在做側滑動導航回手勢的事情

編輯4:

是的是的是的,我甚至不能用Objective-C的作爲然而它說https://stackoverflow.com/a/19019924/4056064

回答

0

我找到了原因修復它明顯。此導航手勢關閉的事情不起作用,所以偶爾會檢測到後退導航掃描而不是滾動,它會調用我以前的視圖,然後將其返回到當前視圖。來源:https://stackoverflow.com/a/19019924/4056064很高興聽到有人有任何解決方法。

編輯:找到一個變通

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 
return NO; 
} 

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { 
    self.navigationController.interactivePopGestureRecognizer.enabled = NO; 
    self.navigationController.interactivePopGestureRecognizer.delegate = self; 
} 
相關問題