错误:应用程序在应用程序启动结束时应该有一个根视图控制器
Posted
技术标签:
【中文标题】错误:应用程序在应用程序启动结束时应该有一个根视图控制器【英文标题】:Error: Applications are expected to have a root view controller at the end of application launch 【发布时间】:2011-12-24 19:12:54 【问题描述】:当应用程序打开时,我首先调用 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.
【问题讨论】:
【参考方案1】:我注意到我的一个应用中也发生了这种情况。我认为这是因为 UIAlertViews 阻塞了应用程序的主线程。我从来没有遇到过任何实际问题(它不会使应用程序或任何东西崩溃),但您可以尝试在延迟后使用 NSTimer 和块/不同线程调用它以删除警告。
【讨论】:
【参考方案2】:这通常是由于缺少窗口和视图控制器的连接而发生的。只需检查您是否在Interface Builder中进行了正确的连接。希望它会有所帮助。
【讨论】:
以上是关于错误:应用程序在应用程序启动结束时应该有一个根视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
MonoTouch 和“应用程序在应用程序启动结束时应该有一个根视图控制器”错误
应用程序在应用程序启动结束时应该有一个根视图控制器 wait_fences: failed to receive reply: 10004003
使用 Xcode 7、iOS 9 运行项目时出现“应用程序窗口应在应用程序启动结束时具有根视图控制器”错误
奇怪的控制台消息 - 应用程序窗口应该在应用程序启动结束时有一个根视图控制器 [重复]