テーブルビューを備えたiOSタブ付きアプリケーション、テーブルビュータブをリセットする方法は?初心者。

StackOverflow https://stackoverflow.com/questions/8840978

質問

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
}

開示:上記のコードをコンパイルしようとしていませんが、テストがはるかに少なくなりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top