我是故事板的新手,我正在尝试连接一些以编程方式调用的segues。
基本上我的应用程序使用websockets连接到服务器,然后根据从服务器收到的消息显示内容。
所以我的应用程序中的第一个场景只是一个“正在连接...”屏幕,它将显示,直到它成功连接到我的服务器。 一旦连接,我需要它来显示下一个屏幕。
这是我的故事板:
当应用程序连接到服务器时,服务器会发送一条消息,询问客户端类型(同一服务器将用于移动网站和Android应用程序)。
应用程序侦听此消息,然后回复服务器说它是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
技术,但前提是我能让它变得不那么慢。
非常感谢任何帮助!