【发布时间】:2025-12-07 00:50:02
【问题描述】:
当我将导航控制器嵌入的视图控制器添加到选项卡栏时,返回“更多”选项卡时,其图标 + 标题会短暂消失。
但是,当视图控制器这样添加时,图标+图像是可以的,不会消失。
我已经尝试了很多东西,但没有选择。有什么想法吗?
这是我的AppDelegate 代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.tabBarController = [[UITabBarController alloc] init];
// Must be placed here, just before tabs are added. Otherwise navigation bar
// will overlap with status bar.
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
[self addViewControllersToTabBar];
self.window.rootViewController = self.tabBarController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
- (void)addViewControllersToTabBar
{
NSArray* tabBarClassNames =
@[
NSStringFromClass([FirstViewController class]),
NSStringFromClass([SecondViewController class]),
NSStringFromClass([FirstViewController class]),
NSStringFromClass([FirstViewController class]),
NSStringFromClass([FirstViewController class]),
NSStringFromClass([SecondViewController class]),
NSStringFromClass([FirstViewController class]),
];
NSMutableArray* viewControllers = [NSMutableArray array];
for (NSString* className in tabBarClassNames)
{
UIViewController* viewController = [[NSClassFromString(className) alloc] init];
UINavigationController* navigationController;
navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[viewControllers addObject:navigationController];
}
[viewControllers addObject:[[FirstViewController alloc] init]]; // This one is fine.
self.tabBarController.viewControllers = viewControllers;
self.tabBarController.selectedViewController = viewControllers[2];
}
而视图控制器实际上只不过是:
@implementation SecondViewController
- (instancetype)init
{
if (self = [super init])
{
self.title = @"second";
self.tabBarItem.image = [UIImage imageNamed:@"second.png"];
}
return self;
}
@end
【问题讨论】:
标签: ios7 uinavigationcontroller uitabbar uitabbaritem