2

アプリに 5 つのタブがあるタブ バーがあります。最後のタブにはいくつかの広告が表示されます。ユーザーがその5番目のタブを「オフ」にできる設定を追加したいので、基本的には画面から削除します。

非表示にするのではなく、削除したいので、残りの 4 つのタブが自動的に均等に配置されることに注意してください。

タブを再度追加して同じことをしたい。

ユーザーがアプリを再起動せずにこれを行うことは可能ですか?

4

1 に答える 1

7

UITabBarController の viewControllers プロパティを使用するだけです。

次のコードを使用して、最後のビュー コントローラーを削除します。

NSMutableArray *mutableViewControllers = [tabBarController.viewControllers mutableCopy];
[mutableViewControllers removeLastObject];
tabBarController.viewControllers = mutableViewControllers;

必要に応じて、次のコードを使用して最後のビュー コントローラーを復元します。

NSMutableArray *mutableViewControllers = [tabBarController.viewControllers mutableCopy];
[mutableViewControllers addObject:previouslyRemovedViewController];
tabBarController.viewControllers = mutableViewControllers;

もちろん、この例では、tabBarController への参照があり、lastViewController (たとえば、プロパティ) を保持していることを前提としています。

また、このコードは必ずメイン スレッドで実行してください。

于 2013-05-10T00:09:36.403 に答える