2017-03-29 21 views
4

私がしたいのは、3次元のショートカットから来て、UITabBarControllerにインデックスを選択させたときです。タブバーでこれを行うと問題はそれです私のメインのUIViewController埋め込みのviewDidAppear()が呼び出されていない場合は、タブバーの項目をもう一度クリックすると、呼び出されません。ドライバーの残りの部分は起こらないので、なぜそれがUITabBarControllerの項目のリストの最初のものではないのか理解しています。ビューコントローラで私のviewDidAppearが呼び出されていない

タブバーコントローラ:

override func viewDidAppear(_ animated: Bool) { 
    if goTasks { 
     self.selectedIndex = 0 
    } else if goTodo { 
     self.selectedIndex = 2 
    } else if goProjects { 
     self.selectedIndex = 3 
    } else if goSearch { 
     self.selectedIndex = 0 
    } 

} 

私の最初のUIViewController(ここでは、それが来る):

override func viewDidAppear(_ animated: Bool) { 
    print("Entry") 
} 

(呼び出されることはありません、このメソッドは)問題overrideメソッドですか?どんな解決策ですか?

+0

今その言葉を願っていますか? – Surjeet

+0

super.viewDidAppear(アニメーション)はメソッド内の最初の行にする必要があります。 – Adolfo

答えて

5

を、それがその後、この

override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 
     if goTasks { 
      self.selectedIndex = 0 
     } else if goTodo { 
      self.selectedIndex = 2 
     } else if goProjects { 
      self.selectedIndex = 3 
     } else if goSearch { 
      self.selectedIndex = 0 
     } 

    } 

のように、スーパークラスの呼び出し、あなたの最初のViewControllerこのメソッドを呼び出します。あなたはsuper.viewDidAppear(アニメーション)を追加する必要が

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    print("Entry") 
} 
+0

ソリューションありがとうございます! – Alejandro

0

私はあなたがスーパーから機能を呼び出すことがあると思う:あなたのUITabBarControllerクラスviewDidAppear funcを

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidLoad() // here what i ment 

    if goTasks { 
     self.selectedIndex = 0 
    } else if goTodo { 
     self.selectedIndex = 2 
    } else if goProjects { 
     self.selectedIndex = 3 
    } else if goSearch { 
     self.selectedIndex = 0 
    } 

} 
0
override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 
    if goTasks { 
     self.selectedIndex = 0 
    } else if goTodo { 
     self.selectedIndex = 2 
    } else if goProjects { 
     self.selectedIndex = 3 
    } else if goSearch { 
     self.selectedIndex = 0 
    } 
} 

、あなたはUITabBarControllerのための任意のクラスを持っていますか

関連する問題