出于某种原因,每当我尝试运行我的应用时,应用都会转到LoginViewController
,即使ViewController
具有非空值时应该转到passwordCheck
Warning: Attempt to present <UINavigationController: 0x14570ff0> on <LoginViewController: 0x1465ea00> whose view is not in the window hierarchy!
这之前一直有效,直到我切换到使用.xib文件中的Storyboard。这是我的代码(它目前在LoginViewController.m
。
if (passwordCheck) {
NSLog(@"%@", usernameField.text);
// Persist the Username for recovery later
[[NSUserDefaults standardUserDefaults] setObject:usernameField.text forKey:kUsernameDefaultsKey];
[[NSUserDefaults standardUserDefaults] synchronize];
NSError *error = nil;
[STKeychain storeUsername:[NSString stringWithFormat:@"%@", usernameField.text] andPassword:[NSString stringWithFormat:@"%@", passwordField.text] forServiceName:@"LoginApp" updateExisting:YES error:&error];
ViewController *viewControl = [self.storyboard instantiateViewControllerWithIdentifier:@"MainControllerNav"];
// Send username to ViewController
AppDelegate *dataCenter = (AppDelegate *) [[UIApplication sharedApplication] delegate];
dataCenter.usernameData = usernameField.text;
NSLog(@"%@", dataCenter.usernameData);
viewControl.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:viewControl animated:YES completion:nil];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
} else {
NSLog(@"Finish viewDidLoad and wait for future instructions from user.");
}
我尝试使用this answer修复它,但都没有帮助。我该如何解决这个问题?提前谢谢。
答案 0 :(得分:0)
你在哪里有这个代码?在viewDidLoad中?如果是这样,那就是你的问题。在将当前控制器添加到窗口的层次结构之前,不能显示另一个控制器。将代码放在viewDidAppear中,如果您不想看到登录控制器,则显示下一个没有动画的控制器。