我在将视图展开到登录屏幕时遇到问题。故事板结构如下:故事板结构 https://i.stack.imgur.com/Ea1t8.png
该应用程序的用户流程如下:
用户在 LoginVC 上登录 -> 通过模态 Segue 进入主选项卡栏屏幕 -> 在每个选项卡栏项目上,我在导航控制器上添加了右栏按钮来访问配置文件页面,每个选项卡栏项目都有独立的导航控制器来保留导航控制器结构线性。 -> 一旦我单击个人资料页面按钮,个人资料页面就会以模态方式呈现 -> 当单击个人资料页面上的注销按钮时,它会触发展开转场并关闭视图控制器
func logoutUser(){
//Networking.logoutUser()
print("It goes to login")
self.performSegue(withIdentifier: "unwindToLogin", sender: self)
}
展开转场是在最左侧 VC 上的 LoginVC 上实现的。我在个人资料屏幕上连接了展开转场,并将其称为“unwindToLogin”
我只是使用了performSegueWithIdentifier。但是,该方法不会被调用,视图也不会发生任何变化。
编辑1:
我想知道,因为我在选项卡栏 vc 上以模态方式调用配置文件页面,所以它找不到 unwindtologin。
如果我只是使用 instantiateviewcontoller 来调用登录,它会清除我的视图控制器堆栈吗?
Edit 2:抱歉,我忘记了当我检查用户是否登录时,我使用以下代码:
if (FIRAuth.auth()?.currentUser != nil) {
self.storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
self.window?.rootViewController = self.storyboard?.instantiateViewController(withIdentifier: "TabBarViewController")
}
所以实际上他们找不到展开方法,因为根视图不是主登录视图控制器。
有人可以帮忙吗?
使用 unwind segue 移动到任何视图控制器。
单击按钮时移动到任何视图控制器。
- (IBAction)unwindToCurrentController:(UIStoryboardSegue *)unwindSegue
{
}
- 将以上几行添加到您的 loginViewController.m 文件中(或)添加
这些行是您想要移动到的视图控制器。
- 实际上,您想在单击时移动到登录视图控制器
按钮。因此,为此事件创建一个按钮或选择任何按钮。
- 在执行此操作之前,您需要将上述代码添加到您的登录视图中
控制器。现在通过拖入按钮来添加操作Exit选项开启顶部视图控制器.
- 它显示了一个展开选项 unwindToCurrentController。单击该选项
并连接它。
现在构建并运行您的应用程序。它工作完美。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)