【问题标题】:Proper way to dismiss multiple UIViews?关闭多个 UIView 的正确方法?
【发布时间】:2015-11-19 16:11:57
【问题描述】:

我有一个 UIViewController (HomeView),它通过 Segue 显示我的称为 GameView 的 UIView。

[self performSegueWithIdentifier: @"segue_playgame" sender: self];

当用户按下按钮时,GameView 会调用 UIView (PauseView)。只需将 PauseView 添加到 UIView 即可显示此暂停视图。

UIView *pv = [[PauseView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:pv];

要删除我调用的 PauseView

[pv removeFromSuperview];

有没有办法在 PauseView 中调用“结束游戏”方法来移除 PauseView 和 GameView,让用户回到 HomeView (UIViewController)?

附带说明,有没有更好的方法来处理显示视图和删除它们?还是我的做法很标准?

【问题讨论】:

  • 我不明白这个问题。只需在两个视图上调用removeFromSuperview。如果在那一刻看不到一个人,那就不会发生任何不好的事情。

标签: ios objective-c uiview uiviewcontroller


【解决方案1】:

您在这里缺少的是UINavigationController。来自official documentation

UINavigationController 类实现了一个专门的视图 管理分层内容导航的控制器。这 导航界面可以呈现您的数据 高效,并使用户更容易浏览该内容。 您通常按原样使用此类,但您也可以子类化为 自定义类行为。

您的视图由UINavigationController 堆栈管理,您可以使用:

- (NSArray<__kindofUIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated

弹回根视图控制器,在您的情况下是您的主视图控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多