Ios 如何返回登录ViewController
当用户启动应用程序时,我将检查身份验证状态,并显示不同的ViewControler 登录->主ViewController->将根据用户操作推送ViewController或presentViewController 需要登录->登录ViewController->主ViewController->将根据用户操作推送ViewController或presentViewController 我的问题是,当用户想要注销时,如何返回登录ViewController 方法一: 当前ViewController->presentViewController/pushViewController登录ViewController 问题:以前的ViewController仍在内存中 方法二: 当前视图控制器->PoptorootViewController激活->当前视图控制器/推送视图控制器登录视图控制器 问题:如果用户以前登录,RootViewController将是主ViewController,我们无法使用该方法释放主ViewController 方法三:Ios 如何返回登录ViewController,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,当用户启动应用程序时,我将检查身份验证状态,并显示不同的ViewControler 登录->主ViewController->将根据用户操作推送ViewController或presentViewController 需要登录->登录ViewController->主ViewController->将根据用户操作推送ViewController或presentViewController 我的问题是,当用户想要注销时,如何返回登录ViewController 方法一: 当前ViewControl
[[[[UIApplication sharedApplication] delegate] window] setRootViewController:signinNavigationController];
问题:没有动画,并且上一个ViewController仍在内存中。您可以在情节提要中使用“展开序列”。有关更多详细信息,请参阅此链接: 在程序上, 按注销按钮时,调用appDelegate函数:
func showLoginController() {
//For Story board use this line
var loginController:LoginViewController = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("loginViewControllerIdentifier") as! LoginViewController
//for xib file use this line
var loginController:LoginViewController = UINib(nibName: "loginViewController", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? LoginViewController
AppDelegate.sharedAppDelegate().window?.rootViewController = loginController
}
您可以从signinNavigationController(NavigationController)堆栈中删除以前的viewcontroller 说成 NSMutableArray*navArray=[[NSMutableArray alloc]initWithArray:self.navigationController.ViewController] //这只是为了从导航堆栈中删除所有视图控制器。 [navArray removeObjectAtIndex:0] //然后再次将堆栈添加到导航堆栈
self.navigationController.ViewController=navArray 使用情节提要和展开片段。2015年了@Cy-4AH,谢谢你的建议,但我不得不说我的申请已经太迟了…谢谢,但我的申请中没有使用情节提要。谢谢,我已经更新了我的问题,请查看