gpt4 book ai didi

IOS/objective-C : Programatically Change Text of Title for Standard UITabBar item

转载 作者:行者123 更新时间:2023-11-29 00:00:59 25 4
gpt4 key购买 nike

当用户从嵌入在 UITabBarController 中的起始 VC 中转到第二个 VC 时,我更改了 UITabbarItem 的标题,并在viewWillAppear 第二个 View Controller 的方法。

//第二个VC,View WIll Appear

UITabBarItem *selectedItem = self.tabBarController.tabBar.selectedItem;
if (selectedItem) {
selectedItem.title = @"VoiceMail";
}

这很好用。

当用户返回到起始 View Controller 时,我想将标题切换回来。

我试图通过在 view will appear 启动 View Controller 的方法中放置类似的代码来做到这一点。

启动VC:ViewWIllAppear

UITabBarItem *selectedItem = self.tabBarController.tabBar.selectedItem;
if (selectedItem) {
selectedItem.title = @"Phone";
}

但它没有任何效果,将标题保留为 Voicemail

如有任何关于如何改回初始值的建议,我们将不胜感激。

感谢您的任何建议。

最佳答案

尝试通过在“启动 VC”中引用 .selectedItem 来更改“2nd”选项卡标题将不起作用,因为此时 .selectedItem StartingVC

一种方法是保存对 SecondVC 索引的引用...然后,在那个 VC 中,在 viewWillDisappear 上,您可以重置其选项卡标题:

这一切都在 SecondVC 中:

#import "ChangeSecondViewController.h"

@interface ChangeSecondViewController ()

@property (assign, readwrite) NSInteger myTabIndex;

@end

@implementation ChangeSecondViewController

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UITabBarItem *selectedItem = self.tabBarController.tabBar.selectedItem;
if (selectedItem) {
selectedItem.title = @"VoiceMail";
}
}

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
_myTabIndex = self.tabBarController.selectedIndex;
}

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
UITabBarItem *myTabItem = [[self.tabBarController.tabBar items] objectAtIndex:_myTabIndex];
if (myTabItem) {
myTabItem.title = @"Phone";
}
}

@end

关于IOS/objective-C : Programatically Change Text of Title for Standard UITabBar item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49498827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com