我如何 return 到故事板上的第一个视图控制器?
How do I return to the first view controller on a storyboard?
场景如下:
我故事板中的第一个场景是登录视图。这是一个 UIViewController。当用户登录时,它会显示嵌入在导航控制器中的主页视图。我正在添加一个注销功能,它应该将我带回到情节提要中的第一个场景,即登录视图。我该怎么做?
这是显示登录视图 -> 导航控制器 -> 主视图的故事板图像
这是我到目前为止的实现。在注销操作中,我清除了会话,并弹出到根视图控制器。它不起作用,因为我仍然停留在主视图上,因为它是导航控制器的根视图控制器。但是,如果我重新启动应用程序,用户将注销,我只剩下登录视图。
代码:
[self.navigationController popToRootViewControllerAnimated:NO];
// Set at beginning of storyboard
UIStoryboard *mystoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
app.loginViewController = [mystoryboard instantiateViewControllerWithIdentifier:@"loginViewController"];
你可以通过使用 navigationController.viewControllers.Get navigationController 中的所有 View Controller 来弹出,识别它然后 pop.If 你已经将 segue 从 LoginView 推送到 HomeView
if([self.navigationController.viewControllers[0] isKindOfClass:[LoginViewController class]])
{
[self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];
}
希望对你有所帮助...
试试这个答案。首先创建一个导航控制器。使其 "is initial View Controller"。之后连接登录 Viewcontroller 作为根视图控制器并将家庭控制器与 facebook 按钮操作连接。
导航控制器 -> 登录控制器 -> 家庭控制器
你的 Storyboard 是这样的
之后当你退出 HomeViewController 然后添加这个方法:
-(IBAction)logOut_Action:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
它工作正常。请像这样实施,如果您遇到任何问题,请告诉我。 :)
为此使用 unwind segues。
在您的 LoginViewController 中,声明一个具有此签名的方法
- (IBAction)unwindToLoginViewController:(UIStoryboardSegue*)segue
转到您的 HomeViewController 并控制从注销按钮拖动到视图控制器顶部的退出按钮 window(请参见下面的屏幕截图),然后 select unwindToLoginViewController
继续。就是这样!
试试这个:
[self.view.window.rootViewController dismissViewControllerAnimated:YES completion:nil];
场景如下:
我故事板中的第一个场景是登录视图。这是一个 UIViewController。当用户登录时,它会显示嵌入在导航控制器中的主页视图。我正在添加一个注销功能,它应该将我带回到情节提要中的第一个场景,即登录视图。我该怎么做?
这是显示登录视图 -> 导航控制器 -> 主视图的故事板图像
这是我到目前为止的实现。在注销操作中,我清除了会话,并弹出到根视图控制器。它不起作用,因为我仍然停留在主视图上,因为它是导航控制器的根视图控制器。但是,如果我重新启动应用程序,用户将注销,我只剩下登录视图。
代码:
[self.navigationController popToRootViewControllerAnimated:NO];
// Set at beginning of storyboard
UIStoryboard *mystoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
app.loginViewController = [mystoryboard instantiateViewControllerWithIdentifier:@"loginViewController"];
你可以通过使用 navigationController.viewControllers.Get navigationController 中的所有 View Controller 来弹出,识别它然后 pop.If 你已经将 segue 从 LoginView 推送到 HomeView
if([self.navigationController.viewControllers[0] isKindOfClass:[LoginViewController class]])
{
[self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];
}
希望对你有所帮助...
试试这个答案。首先创建一个导航控制器。使其 "is initial View Controller"。之后连接登录 Viewcontroller 作为根视图控制器并将家庭控制器与 facebook 按钮操作连接。
导航控制器 -> 登录控制器 -> 家庭控制器
你的 Storyboard 是这样的
之后当你退出 HomeViewController 然后添加这个方法:
-(IBAction)logOut_Action:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
它工作正常。请像这样实施,如果您遇到任何问题,请告诉我。 :)
为此使用 unwind segues。
在您的 LoginViewController 中,声明一个具有此签名的方法
- (IBAction)unwindToLoginViewController:(UIStoryboardSegue*)segue
转到您的 HomeViewController 并控制从注销按钮拖动到视图控制器顶部的退出按钮 window(请参见下面的屏幕截图),然后 select unwindToLoginViewController
继续。就是这样!
试试这个:
[self.view.window.rootViewController dismissViewControllerAnimated:YES completion:nil];