我定义了一个自定义 initWithCoder 方法,因为我正在尝试制作自定义工具栏项。我的故事板中有 5 个视图控制器,每个控制器都有一个自定义类。它们都是初始视图控制器类的子类。主要问题是,它不仅更改了一个类标签栏项目的图像,还更改了每个被按下的标签栏项目的图像。此外,当未选择标签栏项目时,图像不会更改为未选择的标签栏项目图像。每个子类视图控制器都接收相同的 init 方法。我的主要问题是如何让每个班级,无论是孩子还是父母,都接收不同的 init 方法?
-(id)initWithCoder:(NSCoder *)aDecoder
{
NSLog(@"First");
if (self = [super initWithCoder:aDecoder])
{
NSLog(@"Second");
[[self tabBarItem] setFinishedSelectedImage:[UIImage imageNamed:@"RedStar2.png"]
withFinishedUnselectedImage:[UIImage imageNamed:@"Star3.png"]];
//instead of just changing the image of the class's tab bar item, it changes the image of all
classes tab bar items
[[self tabBarItem] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor
redColor], UITextAttributeTextColor, nil] forState:UIControlStateNormal];
}
return self;
}
应用程序运行时,关键字“first”和“second”都被调用了 5 次。每个视图控制器都有一个自定义类。