Ios 如何以编程方式从一个故事板中的一个视图控制器转到另一个故事板中的另一个视图控制器?

Ios 如何以编程方式从一个故事板中的一个视图控制器转到另一个故事板中的另一个视图控制器?,ios,iphone,xcode,swift3,Ios,Iphone,Xcode,Swift3,我在故事板中有一个名为“X”的视图控制器a,其中有一个按钮。单击它时,我正在检查API的成功响应,然后我需要导航到情节提要“B”中的视图控制器B 我正在使用代码: let loginstoryboard = UIStoryboard(name: "Login", bundle: nil) let loginController = loginstoryboard.instantiateViewController(withIdentifier: "login") as? LoginViewCon

我在故事板中有一个名为“X”的视图控制器a,其中有一个按钮。单击它时,我正在检查API的成功响应,然后我需要导航到情节提要“B”中的视图控制器B

我正在使用代码:

let loginstoryboard = UIStoryboard(name: "Login", bundle: nil)
let loginController = loginstoryboard.instantiateViewController(withIdentifier: "login") as? LoginViewController
self.navigationController?.pushViewController(loginController!, animated: true)

所以它对我不起作用。问题是什么?

您可以在下面以编程方式创建故事板的引用,然后使用其故事板id实例化viewcontroller

 let loginstoryboard = UIStoryboard(name: "Login", bundle: nil)
情节提要
您甚至可以在外部故事板中引用视图控制器。有关详细说明,请参阅ans。

请按照以下步骤操作

  • 检查两个视图控制器的脚本ID(如果已插入脚本ID,则跳过步骤2)
  • 插入视图控制器故事板ID
  • 请检查故事板ID的示例图像

    示例代码

       UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:"YourStoryBoardName" bundle:nil];
       UIViewController  *loginViewController = [storyBoard instantiateViewControllerWithIdentifier:"LoginViewController"];
       // If Login View Controller is not a Navigation Controller then you need to create Navigation Controller
       UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loginViewController];
       [self.navigationController pushViewController:viewController animated:true];
    

    检查序列图像板和viewcontroller标识符名称是否正确添加调用API和处理响应的代码视图控制器A是否属于序列图像板中的NavigationController?如果在后台线程中进行API调用,请检查它们是否与loginstoryboard、logincontroller和NavigationController一样为零,然后将上述代码放在主线程中