替换标签栏选择的索引
replacement for tabbar selected index
我有一个旧应用程序,其中有 5 个选项卡。每个选项卡都有广告列表和详细信息。此外,每个选项卡都有各自的添加广告。所有 5 个选项卡的设计除了一些变化外都是相同的,所以我决定只为所有 5 个选项卡使用 1 个屏幕。
现在我正在做的是在添加广告时,我正在检查我是哪个标签,并根据标签栏索引显示隐藏字段。同样适用于详细信息屏幕。示例代码如下所示。
if (self.tabBarController.selectedIndex==0) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==1) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==2) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==3) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==4) {
field1.hidden = YES;
}
现在每个表单都有大约 15 个字段,所以我为所有字段编写了这段代码。
我注意到客户端会不断更改标签栏的位置,所以我一直在寻找有效的方法。
现在我所做的是在所有地方通过搜索替换手动更改索引位置,但是我不喜欢这样。
我正在寻找一种方法,而不是 selectedIndex,我正在寻找一些我将分配给选项卡栏的选项卡项的常量值,所以我的代码将更改如下
if (self.tabBarController.selectedIndex==adType_News) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==adType_Occasions) {
.
.
And so on...
这样我只需要改变storyboard,代码层面不会有任何变化
有什么方法可以做到这一点?
主要问题
由于客户要求完全更改标签栏,我需要在所有我不喜欢的地方更改 selectedIndex 更改,并且感觉效率更低。所以我一直在寻找一种方法,只改变情节提要,而编码级别不会有任何改变。
我的主要问题是更改所有文件中的 selectedIndex,这会导致更多错误。
我想我理解这个问题的意思是代码中充满了数字文字,指的是选项卡栏的选定索引,并且有关项目排序的业务需求正在发生变化。通过将文字更改为可以集中控制的符号来修复:
// in a new file, indexes.h
#define INDEXA (0)
#define INDEXB (1)
#define INDEXC (2)
// wherever existing code refers to the tab selection
#import "indexes.h"
// in the code, for example if selectedIndex == 2, change to
if (self.tabBarController.selectedIndex==INDEXC) {
// ...
我有一个旧应用程序,其中有 5 个选项卡。每个选项卡都有广告列表和详细信息。此外,每个选项卡都有各自的添加广告。所有 5 个选项卡的设计除了一些变化外都是相同的,所以我决定只为所有 5 个选项卡使用 1 个屏幕。
现在我正在做的是在添加广告时,我正在检查我是哪个标签,并根据标签栏索引显示隐藏字段。同样适用于详细信息屏幕。示例代码如下所示。
if (self.tabBarController.selectedIndex==0) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==1) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==2) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==3) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==4) {
field1.hidden = YES;
}
现在每个表单都有大约 15 个字段,所以我为所有字段编写了这段代码。
我注意到客户端会不断更改标签栏的位置,所以我一直在寻找有效的方法。
现在我所做的是在所有地方通过搜索替换手动更改索引位置,但是我不喜欢这样。
我正在寻找一种方法,而不是 selectedIndex,我正在寻找一些我将分配给选项卡栏的选项卡项的常量值,所以我的代码将更改如下
if (self.tabBarController.selectedIndex==adType_News) {
field1.hidden = NO;
} else if (self.tabBarController.selectedIndex==adType_Occasions) {
.
.
And so on...
这样我只需要改变storyboard,代码层面不会有任何变化
有什么方法可以做到这一点?
主要问题
由于客户要求完全更改标签栏,我需要在所有我不喜欢的地方更改 selectedIndex 更改,并且感觉效率更低。所以我一直在寻找一种方法,只改变情节提要,而编码级别不会有任何改变。
我的主要问题是更改所有文件中的 selectedIndex,这会导致更多错误。
我想我理解这个问题的意思是代码中充满了数字文字,指的是选项卡栏的选定索引,并且有关项目排序的业务需求正在发生变化。通过将文字更改为可以集中控制的符号来修复:
// in a new file, indexes.h
#define INDEXA (0)
#define INDEXB (1)
#define INDEXC (2)
// wherever existing code refers to the tab selection
#import "indexes.h"
// in the code, for example if selectedIndex == 2, change to
if (self.tabBarController.selectedIndex==INDEXC) {
// ...