删除子视图后如何显示视图(注销按钮)?

时间:2013-06-04 08:41:38

标签: ios view logout

我正在尝试从子视图(SettingsViewController.h)内的按钮注销。所以我从LogInViewController.h登录,然后转到我的HomeViewController.h,其中我有一个条形按钮项目设置,其中包含以下代码:

-(IBAction)settingsButton:(id)sender{
    SettingsViewController* settings = [[SettingsViewController alloc]init];
    settings.view.tag = 7; //This is to remove the settings from view in SettingsViewController.h
    [self.tabBarController.view addSubview:settings.view];
}

我想将SettingsViewController.h中的视图添加为子视图,以便我可以拥有透明背景,HomeViewController.h视图后面仍然可以看到SettingsViewController.h视图。

现在在SettingsViewController.h,我遇到了实际问题。我有一个注销按钮,并在点击该按钮后尝试显示LoginViewController.h视图。以下是SettingsViewController.h中的代码:

-(IBAction)logoutButton:(id)sender{
    //I cleared all user preferences here
    //ex. [user loggedOut];
    LoginViewController *backToLoginScreen = [[LoginViewController alloc]init];
    [self presentViewController:backToLoginScreen animated:NO completion:nil];
    [[self.view viewWithTag:7] removeFromSuperview]; //This is supposed to remove the Settings view from the view, but if I try to log in again, the setting view will come up
}

所以我猜测,一旦我调用presentViewController,它就不会删除任何视图,但我不知道如何删除“设置”视图。请帮忙?谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 使用popToViewController: animated:popViewControllerAnimated:方法返回.Push将新的VC实例添加到堆栈中,因此在再次执行推送后,您在导航堆栈中有两个LoginViewController。
  2. 在推送/弹出
  3. 之前从superview中删除视图