Iphone 是否在ViewController中重新加载/刷新选项卡栏项?
我试图在ViewController中更改选项卡栏的图像,但要显示新图像,必须单击每个选项卡栏项Iphone 是否在ViewController中重新加载/刷新选项卡栏项?,iphone,icons,uitabbarcontroller,uitabbar,uitabbaritem,Iphone,Icons,Uitabbarcontroller,Uitabbar,Uitabbaritem,我试图在ViewController中更改选项卡栏的图像,但要显示新图像,必须单击每个选项卡栏项 for (CustomTabBarItem *myItem in self.tabBarController.tabBar.items){ myItem.enabled = YES; myItem.badgeValue = @"1"; UIImage *myImage = [[UIImage alloc] initWithContentsOf
for (CustomTabBarItem *myItem in self.tabBarController.tabBar.items){
myItem.enabled = YES;
myItem.badgeValue = @"1";
UIImage *myImage = [[UIImage alloc] initWithContentsOfFile:[[DesignManager sharedManager] getPathOfFile:@"test.png"]];
*myItem.imageSelect= *myImage; // change images of each item. don't appear if I dont click on the item
}
有人知道如何直接显示这些图像吗?
谢谢您需要用新的选项卡栏项替换旧的选项卡栏项。否则无法动态更新图像 最简单的方法是设置由给定选项卡表示的视图控制器的tabBarItem属性。如果要从该视图控制器中执行此操作,只需编写:
self.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil];
或者,您可以从其他地方执行此操作,例如您的应用程序代理:
UIViewController* vc = [tabBarController.viewControllers objectAtIndex: 3];
vc.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil];
我知道这是个老问题。当我需要从另一个活动选项卡更新徽章值时,我遇到了相同的问题。创建另一个
uitabaritem
将解决当前的问题,但在多次调用此代码时可能会导致内存泄漏。另外,当其他视图控制器访问该选项卡时,它们没有对新创建的uitabaritem
的引用。我的窍门是
vc.tabBarItem = vc.tabBarItem;
这对我很有用。嗨,汤姆,你有用于Swift 5.1和iOS 12的吗?我有一个问题: