テーブルビューを備えたiOSタブ付きアプリケーション、テーブルビュータブをリセットする方法は?初心者。
-
27-10-2019 - |
質問
3つのタブを備えたタブ付きアプリケーションがあります
最初のタブはテーブルビューです2番目と3番目のタブはシングルページビューです
ユーザーがテーブルセルをクリックすると、1つのテーブルセルをクリックすると、新しいビューがテーブルセルのバックボタンでプッシュされます。
次に、タブ2をクリックし、タブ1に戻るとしましょう。タブ1でプッシュされた新しいビューがまだ表示されます。私が望むのは、テーブルビューを別のタブでナビゲートするときに「リセット」することです。
解決
Eljayのコメントに同意しますが、質問に答えるには、uitabbarcontrollerdelegateを使用してください
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
新しいタブが選択されたら、現在のタブがタブ1 selectedindexプロパティであるかどうかを確認します tabBarController
そしてそうならば popToRootViewController:
他のヒント
他の人が言ったように、これはおそらく優れたユーザーエクスペリエンスではありません。タブコントローラーのアイデアは、ユーザーがアプリのさまざまな部分を自由に切り替え、以前に行っていたことに戻ることができるということです。
この方法でそれを行うことを決定した場合は、ナビゲーションビューコントローラーのルートビューコントローラーをカスタムサブクラスにし、タブバーコントローラーのデリゲートとしてセットアップします。
カスタムビューコントローラーでは、以下のように関数が()を選択する必要があります。
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
if viewController == self.navigationController {
self.navigationController.popToRootViewController()
}
return true
}
開示:上記のコードをコンパイルしようとしていませんが、テストがはるかに少なくなりました。
所属していません StackOverflow