+3  A: 

Have you tried this:

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
                 forKey:kCATransactionDisableActions];
[layer addSublayer:sublayer];
[CATransaction commit];

from the Apple docs?

Matt Long
This should work, but note that as of iPhone OS 3.0 you can simply do [CATransaction setDisableActions:YES];
Jason Foreman
Yep. Good point. Wish we could get an update to the Apple docs. ;-)
Matt Long
A: 

You can also suppress implicit layer addition animations by setting the actions dictionary on the superlayer, like I describe in this answer:

NSMutableDictionary *newActions = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSNull null], @"sublayers", nil];
superlayer.actions = newActions;
[newActions release];
Brad Larson