我是故事板的新手,我正在尝试连接一些要以编程方式调用的 segue。
基本上,我的应用程序使用 websockets 连接到服务器,然后根据从服务器接收到的消息显示内容。
所以我的应用程序中的第一个场景只是一个“正在连接...”屏幕,它会一直显示,直到它成功连接到我的服务器。连接后,我需要它来显示下一个屏幕。
这是我的故事板:
当应用程序连接到服务器时,服务器会发送一条消息,询问客户端类型(移动网站和安卓应用程序将使用同一服务器)。
应用程序监听此消息,然后回复服务器说它是 iPhone。当服务器准备好让客户端登录时,它会发送“loginready”消息。
这是我用来切换到登录屏幕的唯一代码:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UIViewController *loginVC = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
[mViewController presentViewController:loginVC animated:YES completion:nil];
但它需要它(模拟器至少......订阅几周前用完)15秒才能完成过渡。
我最初尝试过这个:
[mViewController dismissViewControllerAnimated:YES completion:^() {
[mViewController performSegueWithIdentifier:segueID sender:mViewController];
}];
mViewController
当前场景的位置在哪里UIViewController
,但这绝对没有做任何事情。就像它只是停留在“正在连接...”页面上,没有任何错误或任何代码已运行的证据。
在服务器发送“logintrue”消息后,我还尝试使用此代码移动到第三个场景,并且登录屏幕消失,但只是显示“正在连接...”屏幕并且永远不会转换到第三个场景。
我真的不介意我是否必须使用该presentViewController
技术,但前提是我可以让它不那么慢。
任何帮助将非常感激!