簡體   English   中英

Pop animation 在 UITabbarController 的第一個 UINavigationController 中不起作用

[英]Pop animation is not working in first UINavigationController of UITabbarController

我不知道我的代碼有什么問題。 我已經成功開發了應用程序並且所有的東西都工作正常,除了我第一次啟動應用程序時,在第一個導航 controller 中,pop animation 不能正常工作。 似乎Pop without animation 當我更改選項卡並返回第一個選項卡時,它工作正常。 然后做push-pop然后它工作正常。

從一周開始,我就試圖找出問題所在。 但由於冗長的代碼而無法獲得成功。 我已經嘗試了相同的 animation 創建Tabbar Demo並且它工作正常。

我的應用程序具有以下層次結構。

UINavigationController --> UIViewController --> UITabbarController --> Four UINavigationController --> UIViewControlle.

我在我的UITabbarController中使用了storyboard

我知道我問了這個問題,並且也提供了解決方案。 我很久以前就問過這個問題,但由於存在不合邏輯的錯誤,我沒有得到任何解決方案。 並非每個Tabbar基礎應用程序都具有相同的功能。 我在這里添加了經過長時間調試的解決方案,發現即使單行也可能破壞您的項目。

實際上,我已經從情節UITabbarController添加了UITabbarController ,並以編程方式創建了UITabbarController類,並在storyboard使用UITabbarController類型UITabbarController

這是我的問題,我忘了寫[super viewDidAppear:animated]; 內部-(void)viewDidAppear:(BOOL)animated方法。 所以我會第一次打破流行動畫,然后它將正常工作。

獲得此解決方案后,即使我也不知道此行如何影響整個代碼。 但我不希望其他人浪費時間來找出這樣的單行(意外問題)問題。 所以在這里我要添加此代碼。

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
}

對於Swift 5

取決於@Jatin Patel - JP回答

為您的 TabBarController 創建自定義 class

在您的 UITabBarController 文件中添加此代碼

class MyTabBarController: UITabBarController {
  override func viewDidLoad() {
      super.viewDidLoad()
  }

  override func viewDidAppear(_ animated: Bool) {
      super.viewDidAppear(animated)
   }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM