Помимо того, что я привередлив в комментариях, я подумал, что могу также помочь с этим. Я думаю, что вам нужно искать виновника где-то еще. Я создал новый проект и контроллер представления с этим фрагментом:
#import "VC1.h"
@implementation VC1
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSelector:@selector(presentModal) withObject:nil afterDelay:1.0];
}
- (void)presentModal {
static int colorChooser = 0;
VC1 *vc1 = [[[VC1 alloc] init] autorelease];
switch (colorChooser%2) {
case 0:
vc1.view.backgroundColor = [UIColor whiteColor];
break;
default:
vc1.view.backgroundColor = [UIColor blackColor];
break;
}
colorChooser++;
[self presentModalViewController:vc1 animated:YES];
}
@end
И он работает безупречно после нажатия на контроллер навигации. Он рекурсивно чередует черно-белые изображения, протестированные как на симе, так и на устройстве 3G.
Может быть, вы делаете какие-то другие переходы просмотра из-за некоторых уведомлений или других асинхронных средств? В любом случае вам нужно будет поделиться большим количеством своего кода, чтобы кто-нибудь мог сказать, в чем проблема.