viewDidLoad:
не там, где вы хотите создать модальное представление. Он может быть вызван после того, как предупреждение о нехватке памяти выгружает ваш контроллер представления, а затем, когда пользователь возвращается к нему, он неожиданно попытается показать модальное представление. Если вы хотите что-то представить при запуске приложения, сделайте это в applicationDidFinishLaunching:
в вашем делегате приложения или настройте наблюдатель NSNotfication:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidFinishLaunching:) name:UIApplicationDidFinishLaunchingNotification object:nil];
и позвоните presentModalViewController:
туда.