Ios Swift pushViewController()不工作,但当前()不可用

Ios Swift pushViewController()不工作,但当前()不可用,ios,swift,Ios,Swift,我有一个应用程序,它有两个故事板:一个用于登船,它显示一个带有应用程序信息的PageViewController,另一个主视图显示实际内容的网络视图 我正在尝试构建一个sing out函数来删除数据,并将它们带回入职屏幕,在那里它们将再次进行身份验证。我在注销后尝试了以下代码,但没有得到结果 let storyBoard: UIStoryboard = UIStoryboard(name: "Onboarding", bundle: nil) let newViewContr

我有一个应用程序,它有两个故事板:一个用于登船,它显示一个带有应用程序信息的PageViewController,另一个主视图显示实际内容的网络视图

我正在尝试构建一个sing out函数来删除数据,并将它们带回入职屏幕,在那里它们将再次进行身份验证。我在注销后尝试了以下代码,但没有得到结果

let storyBoard: UIStoryboard = UIStoryboard(name: "Onboarding", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "PageControlViewController")
self.navigationController?.pushViewController(newViewController, animated: true);
此代码不起任何作用,应用程序将正常运行。将pushViewController()替换为present()确实有效,但方法是在现有视图上显示一个模式

self.present(newViewController,动画:true,完成:nil)


我的意图是完全销毁主视图,并让Onboard视图启动主视图的新版本。

正如您的代码正确显示的那样,
.pushViewController
只有在
self.navigationController
不是
nil
时才有意义。但是在您的情况下,
self.navigationController
nil
-您的视图控制器不在导航界面中。因此,推送是不可能的,什么也不会发生。

如果不使用navigationController,如何切换到新的故事板?这与切换故事板无关。这与你现在的位置有关,在推之前。如果您还没有使用导航控制器,“推送”这个概念没有任何意义。您是说实现我尝试的目标的唯一方法是使用导航控制器吗?但是导航控制器不应该只在一个故事板中使用吗?抱歉,我不明白这有多大帮助。我所读到的关于导航控制器的所有内容都表明,它只适用于一个故事板。我有两个独立的故事板。我发现了一些解决方法,包括使用按钮分段转换故事板,但我的应用程序驻留在web视图中,因此我无法使用它们。你到底在建议我做什么?