我想执行另一个视图控制器从注册,但当我这样做,边栏消失。有人帮忙吗?
@IBAction func signUpPressed(_ sender: UIButton) {
if let email = emailTextField.text, let parola = parolaTextField.text{
Auth.auth().createUser(withEmail: email, password: parola) { (authResult, eroare) in
if let e = eroare {
print(e.localizedDescription)
}
else
{
self.transitionToHome()
}
}
}
}
func transitionToHome() {
let homeViewController = storyboard?.instantiateViewController(identifier: Constants.Storyboard.homeViewController) as? HomeViewController
view.window?.rootViewController = homeViewController
view.window?.makeKeyAndVisible()
}
[ViewControllers][1]:https://i.stack.imgur.com/c6tsh.png
transitionToHome()是自己创建一个视图控制器的实例,这就是左侧导航导航消失的原因。
如果您希望能够保持导航,那么您必须创建一个UINavigationController
,其中嵌入了HomeViewController
的根视图控制器
let homeNavigationController = UINavigationController(rootViewController: homeViewController)
view.window?.rootViewController = homeNavigationController
view.window?.makeKeyAndVisible()
之所以会发生这种情况,是因为边栏按钮是导航控制器的一部分,并且当您尝试实例化homeViewController时,您只启动了controller,而该controller实际上没有NavigationVC。RootViewController应该是导航控制器。您需要从storyboard中的HomeViewController中删除标识符(constants.storyboard.HomeViewController),并将其设置为其嵌入的导航控制器。
func transitionToHome() {
let homeNavController = storyboard?.instantiateViewController(identifier: Constants.Storyboard.homeViewController) as? UINavigationController
view.window?.rootViewController = homeNavController
view.window?.makeKeyAndVisible()
}
我找到了一些关于这个问题的帖子,但是没有一个能解决我的问题。 说像我已经... ViewControlllerA ViewControlllerB 我试图将ViewControlllerB添加为ViewControlllerA中的子视图,但是,它抛出了一个错误,如""。 下面是代码。。。 视图控制器 ViewControllerB只是一个带有标签的简单屏幕。 视图控制器B 编辑
问题内容: 我有一个storyviewcontroller,它的视图上有对象。我需要更改UILabel(在storyviewcontroller中)上的文本,并将视图加载到数组上。我已将IBOutlet连接到storyviewcontroller中的标签。 我已经创建了storyviewcontroller类的对象,并且能够访问其变量。但是,在创建storyviewcontroller的对象之后,
问题内容: 我没有找到有关此问题的文章,但没有一个解决我的问题。 就像我说的那样。 ViewControllerA ViewControllerB 我试图将添加为的子视图,但是它 抛出类似“ ” 的错误。 下面是代码… ViewControllerA ViewControllerB只是一个带有标签的简单屏幕。 ViewControllerB EDIT 根据用户答案的建议解决方案,ViewCon
问题内容: 我想从另一个控制器的函数中加载一个控制器,因为我集成到项目中的库我不想将其加载到控制器中,因为我想保持它的清洁和相关性。 我有默认的控制器,所以我可以加载,这样我怎么能从main函数访问控制器,所以我不必将控制器放在url中。 如果我可以从主控制器功能中加载控制器功能,我仍然愿意使用HMVC。 问题答案: 您无法从CI中的控制器加载控制器-除非您使用HMVC或其他工具。 您应该考虑一下
问题内容: 我是Angular的新手,正在尝试弄清楚该怎么做… 使用AngularJS,如何注入要在另一个控制器中使用的控制器? 我有以下片段: 执行此操作时,出现错误: 我是否应该尝试在另一个控制器内部使用一个控制器,还是应该将此服务用作服务? 问题答案: 如果您打算掌握已经实例化的另一个组件的控制器,并且如果您遵循的是基于组件/指令的方法,则始终可以遵循某个层次结构的另一个组件中的控制器(一个
问题内容: 我有一个这样的故事板 -> NavigationController-> LoginView-> TabBarController-> VC1-> VC2 我没有设法从VC1到VC2进行“移动”并保持选项卡栏。 我尝试了以下方法: Segue(显示类型) 以编程方式实例化: 但两者都会使标签栏消失。 我也尝试过 但这并没有改变任何东西。 您还有其他想法吗? PS:我在上面更新了方案…