アプリに 5 つのタブがあるタブ バーがあります。最後のタブにはいくつかの広告が表示されます。ユーザーがその5番目のタブを「オフ」にできる設定を追加したいので、基本的には画面から削除します。
非表示にするのではなく、削除したいので、残りの 4 つのタブが自動的に均等に配置されることに注意してください。
タブを再度追加して同じことをしたい。
ユーザーがアプリを再起動せずにこれを行うことは可能ですか?
アプリに 5 つのタブがあるタブ バーがあります。最後のタブにはいくつかの広告が表示されます。ユーザーがその5番目のタブを「オフ」にできる設定を追加したいので、基本的には画面から削除します。
非表示にするのではなく、削除したいので、残りの 4 つのタブが自動的に均等に配置されることに注意してください。
タブを再度追加して同じことをしたい。
ユーザーがアプリを再起動せずにこれを行うことは可能ですか?
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 (たとえば、プロパティ) を保持していることを前提としています。
また、このコードは必ずメイン スレッドで実行してください。