首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次调用InitWithCoder

多次调用InitWithCoder
EN

Stack Overflow用户
提问于 2013-07-22 20:59:08
回答 1查看 546关注 0票数 0

我定义了一个定制的initWithCoder方法,因为我正在尝试制作定制的工具栏项目。我的故事板中有5个视图控制器,每个控制器都有一个自定义类。它们都是初始视图控制器的类的子类。主要问题是,它不是仅仅更改一个类选项卡栏项目的图像,而是更改每个按下的选项卡栏项目的图像。此外,取消选择选项卡栏项目时,图像不会更改为未选择的选项卡栏项目图像。每个子类视图控制器接收相同的init方法。我的主要问题是如何让每个类,不管是子类还是父类,接收不同的init方法?

代码语言:javascript
复制
 -(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次。每个视图控制器都有一个自定义类。

EN

回答 1

Stack Overflow用户

发布于 2013-07-22 21:36:30

如果您希望为每个选项卡提供不同的图像,则必须在每个子类中重复此方法5次,而不是在“公共祖先”--超类中执行相同的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17788264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档