【问题标题】:How to present a view after removing a subview (log out button)?删除子视图(注销按钮)后如何呈现视图?
【发布时间】:2013-06-04 08:41:38
【问题描述】:

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

-(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,它不会删除任何视图,但我不知道如何删除设置视图。请帮忙?谢谢!

【问题讨论】:

  • 您混淆了视图和视图控制器。您能否编辑您的问题,以便我们了解您希望从视图中获得什么以及从视图控制器中获得什么?
  • 很抱歉,我试图让它更清楚,如果我应该编辑其他内容,请告诉我

标签: ios view logout


【解决方案1】:
  1. 使用 popToViewController: animated:popViewControllerAnimated: 方法返回。Push 将一个新的 VC 实例添加到堆栈中,因此再次推送后,导航堆栈中有两个 LoginViewController。
  2. 在 push/pop 之前从 superview 中删除视图

【讨论】:

  • 谢谢,但我有一个小问题,当我使用popToViewController: animated: 时,如何调用之前堆叠的 LoginViewController?
  • 使用popViewControllerAnimated:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
相关资源
最近更新 更多