1

我是故事板的新手,我正在尝试连接一些要以编程方式调用的 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技术,但前提是我可以让它不那么慢。

任何帮助将非常感激!

4

0 回答 0