错误:应用程序在应用程序启动结束时应具有根视图控制器

时间:2011-12-24 19:12:55

标签: objective-c ios view

当应用程序打开时,我正在调用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.
}

2 个答案:

答案 0 :(得分:3)

我也注意到这种情况发生在我的应用程序中。我认为这是因为UIAlertViews阻止了应用程序启动的主要线程。我从来没有遇到任何实际问题(它不会使应用程序或其他任何东西崩溃),但您可以尝试在延迟后使用NSTimer和阻止/不同的线程来调用它来删除警告。

答案 1 :(得分:1)

这通常是由于缺乏窗户和窗户的连接而发生的。 view-controller。只需检查您是否在Interface Builder中进行了正确的连接。希望它能有所帮助。