如何返回故事板上的第一个视图控制器?

时间:2015-02-13 03:51:38

标签: ios objective-c storyboard

以下是该方案:

我的故事板中的第一个场景是登录视图。它是一个UIViewController。当用户登录时,它显示嵌入在导航控制器中的主视图。我添加了一个注销功能,该功能应该让我回到故事板中的第一个场景,即登录视图。我该怎么做?

这是显示登录视图的故事板的图像 - >导航控制器 - >家庭观点 Storyboard

这是我到目前为止的实施。在注销操作中,我清除会话,然后弹出到根视图控制器。它不起作用,因为它仍然停留在主视图上,因为它是导航控制器的根视图控制器。但是,如果我重新启动应用程序,则用户已注销,我将离开登录视图。

代码:

    [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"];

4 个答案:

答案 0 :(得分:6)

使用unwind segues。

在您的LoginViewController中,使用此签名声明一个方法

- (IBAction)unwindToLoginViewController:(UIStoryboardSegue*)segue

转到HomeViewController并控制从注销按钮拖动到视图控制器窗口顶部的“退出”按钮(参见下面的屏幕截图),然后选择unwindToLoginViewController segue。就是这样!

enter image description here

答案 1 :(得分:2)

U可以使用navigationController.viewControllers弹出。获取navigationController中的所有View Controllers,识别它然后弹出。如果你已将segue从LoginView推送到HomeView

if([self.navigationController.viewControllers[0] isKindOfClass:[LoginViewController class]]) 
    {
      [self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];
    }

希望它对你有所帮助......

答案 2 :(得分:1)

试试这个答案。首先,您创建一个导航控制器。 make it"是初始View Controller"。之后连接登录Viewcontroller作为根视图控制器并使用facebook按钮Action连接家庭控制器。

导航控制器 - >登录控制器 - >家庭控制器

您的故事板看起来像这样

enter image description here

之后从HomeViewController注销时,只需添加此方法:

  -(IBAction)logOut_Action:(id)sender
  {
    [self.navigationController popViewControllerAnimated:YES];
  }

它工作正常。请这样实施,如果您遇到任何问题,请告诉我。 :)

答案 3 :(得分:1)

试试这个:

$DayCount = 0;

while ($DayCount < 5) {

echo "<td>";
echo date('m/d/Y', strtotime('+$DayCount days', strtotime($UpWeekStart)));
echo "</td>";

$DayCount = $DayCount + 1;

}