私は2つのタブを持つアプリケーションを書いています。最初のタブでは、ユーザーがいくつかの設定を選択します。次に、2番目のタブをクリックして、最初のタブの設定に基づいてカードをランダムに描画して表示します。 2番目のタブのビューの下部には、再シャッフルボタンがあります。私はすぐに2番目のタブに戻るように指示するオーバーライドされた準備(送信者:)の機能を持つ(カスタム)UITabBarViewControllerにボタンsegue'dを持っています。すべての同じことをここでいくつかの質問を読んだ後、私はすべてを正しくしていると確信しており、すべての答えによると、それはする必要があります。準備(for:送信者:)ボタンからタブバーコントローラへのセグの間に呼び出されない(Swift 4、Xcode 9)
ただし、最初のタブにのみ表示されます。 2番目のタブをもう一度クリックすると、それが改造され、新しいカードセットが正しく表示されるため、問題はありません。ただし、再シャッフルボタンがクリックされるたびに、prepare()は呼び出されないので、なぜ2番目のタブではなく最初のタブに移動するのですか。 prepare()が呼び出されないのはなぜですか?
class MainTabBarViewController: UITabBarController {
// var nextViewNumber = Int()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "reshuffleSegue") {
if let tabVC = segue.destination as? UITabBarController {
tabVC.selectedIndex = 2
}
}
}
}
編集を追加する:意図した効果を得るための別の方法がありますならば、私の代わりにそれを使用させていただき
は、ここで私は、ストーリーボードやコードを持っているものです。
確かです。ブレークポイントに到達しませんでした。 –
準備()の最初の行 –
はい、私はあなたの間違いを見ています。下の私の答えを見てください! – matt