Во-первых, старайтесь избегать использования NSUserDefautls, так как это не зависит от приложения и может вызвать проблемы при некоторых обстоятельствах (см. Справочные документы).
Я бы предложил сохранить данные вашего приложения в некотором файле plist, который вы можете проверить при запуске приложения - (void) applicationDidFinishLoading: метод класса делегата вашего приложения - и решить, должен ли отображаться ваш модальный вид или нет .
Допустим, у вас есть широкодоступное приложение
NSMutableDictionary экземпляр, где вы храните
предпочтения. Когда приложение собирается закрыть то есть - (недействительно)
applicationWillTerminate: метод делегата вашего приложения, просто сохраняйте содержимое этого словаря, чтобы поместить его в какую-то часть структуры каталога вашего приложения (папка Documents - хороший выбор). См. Справку NSDictionary о том, как хранить / читать файлы plist. Это довольно просто.