在UITabBAr上设置tintColor会导致Application崩溃

时间:2012-03-16 16:14:56

标签: objective-c ios4

我的application:DidFinishLaunchingWithOptions:中有以下代码,我尝试设置标签栏色调颜色:

UIColor *colour = [UAColors getSeasonalColour];

self.tabBarController.tabBar.tintColor = colour;    // SIGABORT here
[colour release];

getSeasonalColours是:

+(UIColor *)getSeasonalColour {
    UIColor *seasonalColour = 0;

    if ( [UADates isSpring:[NSDate date]] )
        seasonalColour = [UIColor greenColor];
    else if ( [UADates isSummer:[NSDate date]] )
        seasonalColour = [UIColor blueColor];
    else if ( [UADates isAutumn:[NSDate date]] )
        seasonalColour = [UIColor orangeColor];
    else if ( [UADates isWinter:[NSDate date]] )
        seasonalColour = [UIColor redColor];
    else
        seasonalColour = [UIColor blackColor];

    return seasonalColour;
}

现在UADates只是一个对isWinter返回true的存根。

为什么会导致崩溃? getSeasonalColours时,使用相同的tintColor非常正常。

2 个答案:

答案 0 :(得分:3)

设置标签栏的色调颜色仅适用于从iOS 5开始(因此会在iOS 4及更早版本上崩溃),而导航栏色调颜色自iPhone OS 2.0以来就已存在。

答案 1 :(得分:2)

[colour release]不应该在那里,因为你的颜色都是自动释放的。你确定 不是崩溃的行吗?