iOS以编程方式动态更改选项卡栏项目图像不工作
尝试以编程方式在选项卡栏上设置图像时出现问题 我想有一个黑色背景和白色图标与白色文本的所有标签。当你浏览它们时,选中的标签会改变,使它有一个带有白色图标和标题的红色背景。现在,出于测试目的,我在所有选项卡上都有相同的图像。但它们都是不同的图像 现在我的问题是,这段代码似乎被忽略了,出现了“原始”(带有故事板中的设置)。除了在情节提要中更改值外,没有任何更改 我尝试在DidFinishLaunching中使用AppDelegate文件中的选项设置它们,如下所示:iOS以编程方式动态更改选项卡栏项目图像不工作,ios,tabbar,Ios,Tabbar,尝试以编程方式在选项卡栏上设置图像时出现问题 我想有一个黑色背景和白色图标与白色文本的所有标签。当你浏览它们时,选中的标签会改变,使它有一个带有白色图标和标题的红色背景。现在,出于测试目的,我在所有选项卡上都有相同的图像。但它们都是不同的图像 现在我的问题是,这段代码似乎被忽略了,出现了“原始”(带有故事板中的设置)。除了在情节提要中更改值外,没有任何更改 我尝试在DidFinishLaunching中使用AppDelegate文件中的选项设置它们,如下所示: - (BOOL)applicati
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tc = [mainStoryboard instantiateViewControllerWithIdentifier:@"tabbar"];
UITabBar *tabBar = tc.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
UITabBarItem *tabBarItem5 = [tabBar.items objectAtIndex:4];
tabBarItem1.selectedImage = [[UIImage imageNamed:@"ikon_clubkort"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem1.image = [[UIImage imageNamed:@"ikon_clubkort"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem1.title = @"xxxx";
tabBarItem2.selectedImage = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem2.image = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem2.title = @"xxxx";
tabBarItem3.selectedImage = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem3.image = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem3.title = @"xxxx";
tabBarItem4.selectedImage = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem4.image = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem4.title = @"xxxx";
tabBarItem5.selectedImage = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem5.image = [[UIImage imageNamed:@"ikon_clubkort"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem5.title = @"xxxx";
return YES;
}
你知道我做错了什么吗?从我读到的内容来看,基本上你是通过编程创建了一个选项卡栏控制器,但没有显示它 你可以做两件事:
应用程序:didFinishLaunchingWithOptions
的末尾:
self.window.rootViewController=tc
UITabBarController
的子类,将您拥有的选项卡栏项目设置代码放在新类“viewDidLoad
方法上,并将该类分配给情节提要中的视图控制器
如果我设置self.window.rootViewController=tc,我的单例将被重置。有什么解决办法吗?对不起,哪一个单身汉?在任何情况下,我都建议使用第二个选项而不是第一个选项。我有一个保存用户数据的singleton对象,但从未设置singleton,因为如果我设置self.window.rootViewController=tc,我的登录类将被跳过。它直接跳入第一个选项卡窗口。如果我没有设置SELF.WOWDO.ROOTVIEW控制器= TC,应用程序会在登录页面上启动,在这种情况下,你应该真正考虑制作一个UITabBar控制器子类,并从登录页面到StyBooad中的那个类制作一个SeGeU。