2016-12-07 50 views
0

我需要添加或從導航欄刪除項目當用戶,所以我必須改變屏幕上的代碼,如:ButtonBarPagerTabStripViewController updateIndicator toIndex是錯誤

override func updateIndicator(for viewController: PagerTabStripViewController, fromIndex: Int, toIndex: Int, withProgressPercentage progressPercentage: CGFloat, indexWasChanged: Bool) { 
    super.updateIndicator(for: viewController, fromIndex: fromIndex, toIndex: toIndex, withProgressPercentage: progressPercentage, indexWasChanged: indexWasChanged) 
    if indexWasChanged { 
     if toIndex == 2 { 
      rightBtn.alpha = 1 
     } else { 
      rightBtn.alpha = 0 
     } 
    } 
} 

rightBtn簡直就是我的導航右端的按鈕酒吧。

但是在我的測試運行,我注意到的是,如果用戶點擊該按鈕欄,而不是滑動來改變屏幕的的fromIndex元素範圍是錯誤的。它仍然是最後一次更改的值。 例如當用戶從第三個屏幕滑動到第二個屏幕時,fromIndex將爲2並且指向1,但是如果用戶點擊了欄上的第三個按鈕,即使期望位於1 toIndex,fromIndex仍然是2也將保持在1,即使現在它應該是2. 這導致我的rightBtn不顯示用戶是否從第三個屏幕上滑動,然後輕敲條回到第三個。

有沒有辦法這樣的場景中,以獲得正確的toIndex還是可以解決嗎?

第一部分是錯誤部分,我通過直接在barbutton攻導航,沒有指針的第二部分是導航用精品工程滑動,圖標只是假設出現在三標籤

+1

可以添加視頻或gif爲更好地瞭解 –

+0

@jigneshVadadoriya我說我的測試運行的屏幕頂蓋,任何想法如何解決這個問題? –

回答

0

我已經得到了解決,對於同樣的問題的人,有在ButtonBarPagerTabStripViewController一個CURRENTINDEX。所以這個:

if indexWasChanged { 
     if currentIndex == 2 { 
      rightBtn.alpha = 1 
     } else { 
      rightBtn.alpha = 0 
     } 
    } 

將工作在問題的原始代碼。

我也去了GitHub project,發現別人誰是面臨這樣的問題已經上報了。希望它會被修復,並且這兩種方法都可以工作。