2011-12-24 20 views
1

の終わりに、ルートビューコントローラを持つことが期待されているアプリが開いたときに、私は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. 
} 

答えて

3

私はこれも私のアプリで起こっていることに気づいた。私はUIAlertViewsがアプリケーションを起動するメインスレッドをブロックするためだと思います。私はこれで実際に問題を起こしたことはありませんでしたが(アプリケーションや何かをクラッシュさせることはありません)、NSTimerとブロック/別のスレッドで遅れて呼び出すと、警告を取り除くことができます。

1

これは通常、ウィンドウ& view-controllerの接続が不足しているために発生します。Interface Builderで正しく接続しているかどうかを確認してください。それが助けてくれることを願って。

関連する問題