我的应用程序中有一个标签栏,上面有 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(例如在一个属性上)。
另外,请确保在主线程上运行此代码。