我是iOS新手,我试图制作用户注册应用程序。代码:调用警报控制器后调用下一个视图控制器
-(void) registerNewUser{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:_usernameField.text forKey:@"username"];
[defaults setObject:_passwordField.text forKey:@"password"];
[defaults setBool:YES forKey:@"registered"];
[defaults synchronize];
UIAlertController *success = [UIAlertController alertControllerWithTitle:@"Success"
message:@"You are registered"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"OK Action")
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action){
NSLog(@"OK Action");
}];
[success addAction:okAction];
[self presentViewController:success animated:YES completion:nil];
[self performSegueWithIdentifier:@"login" sender:nil];
}
我现在遇到的问题是
Warning: Attempt to present <WelcomePageViewController: 0x7fa1d3cecbb0> on <RegistrationViewController: 0x7fa1d3c49d70> which is already presenting <UIAlertController: 0x7fa1d3c5fd40>
其中WelcomePageViewController
是下一个视图控制器我想去。我已通过this,this和this进行了搜索。
那么从拳头链接的接受的答案我知道,如果你已经告诉视图控制器presentViewController:...,你不能再这样做,直到提出的视图控制器已被解雇。
在模拟过程中我来说,我得到了success you are registered
消息即高达直到[self presentViewController:success animated:YES completion:nil];
但下一行[self performSegueWithIdentifier:@"login" sender:nil];
不执行即程序未segueing到下一个视图控制器由于本控制器正忙于报警控制器。
当我注释掉[self presentViewController:success animated:YES completion:nil];
我确实转到下一个视图控制器。但我想获得警报消息,然后继续到下一个视图控制器。这怎么可能?
它的工作。我可以问你解释流程是如何发生的吗? – Rishab
请参阅答案中的评论。高兴地帮助:) – VRAwesome
最少15个字符是怎么回事。谢谢btw。 – Rishab