当应用程序打开时,我正在调用UIAlertView,我收到错误Applications are expected to have a root view controller at the end of application launch
为什么会发生这种情况的任何想法
- (void)viewDidLoad
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if([userDefaults stringForKey:@"kUserName"] == nil)
{
NSLog(@"enter a username");
askForUserName = [[UIAlertView alloc] initWithTitle:@"First time here I see!"
message:@"Please enter a username:\n\n"
delegate:self
cancelButtonTitle:@"Done"
otherButtonTitles:nil];
CGRect frame = CGRectMake(48, 70, 200, 20);
usernameField = [[UITextField alloc] initWithFrame:frame];
usernameField.placeholder = @"Username";
usernameField.backgroundColor = [UIColor whiteColor];
usernameField.autocorrectionType = UITextAutocorrectionTypeDefault;
usernameField.keyboardType = UIKeyboardTypeAlphabet;
usernameField.returnKeyType = UIReturnKeyDefault;
usernameField.clearButtonMode = UITextFieldViewModeWhileEditing;
[askForUserName addSubview:usernameField];
[askForUserName show];
} else
{
userName = [userDefaults stringForKey:@"kUserName"];
}
// Do any additional setup after loading the view, typically from a nib.
}
答案 0 :(得分:3)
我也注意到这种情况发生在我的应用程序中。我认为这是因为UIAlertViews阻止了应用程序启动的主要线程。我从来没有遇到任何实际问题(它不会使应用程序或其他任何东西崩溃),但您可以尝试在延迟后使用NSTimer和阻止/不同的线程来调用它来删除警告。
答案 1 :(得分:1)
这通常是由于缺乏窗户和窗户的连接而发生的。 view-controller。只需检查您是否在Interface Builder中进行了正确的连接。希望它能有所帮助。