【问题标题】:Re-Presenting Modal View Brings to last VC instead of first重新呈现模态视图带来最后一个 VC 而不是第一个
【发布时间】:2023-03-28 13:52:01
【问题描述】:

我有一个以模态方式呈现的导航控制器,堆栈中有 4 个视图。最终视图有一个完成按钮,用于关闭模态视图。当我再次呈现模态视图时,它会自动转到最后一个视图而不是第一个视图。我在关闭后添加了一条线以弹出到第一个视图,但无论我将其设置为“是”还是“否”,它都会添加一个奇怪的动画。也许我做错了?

- (void)dismissModalView
{
    [self dismissModalViewControllerAnimated:YES];
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -4)] animated:YES];
}

更新:

这是用于呈现模态视图/导航控制器的方法

- (void)showModalView
{
    self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self.navigationController presentModalViewController:self.optionsNavController animated:YES];
}

【问题讨论】:

    标签: iphone objective-c cocoa-touch uiview presentmodalviewcontroller


    【解决方案1】:

    不,看起来不错。如果您想保留导航控制器的状态,请不要以模态方式显示它,因为当您关闭视图时它会被释放。

    模态视图通常用于呈现只需要简单显示而不维护视图状态的信息(即关于页面、登录页面、设置页面等)。

    【讨论】:

    • 我不想保留它。我想在它被解雇时重置,所以当用户再次展示它时,它位于第一个 VC,而不是用户上次离开的地方。
    • 我明白了,您是否尝试删除 popToViewController 行?我不认为你需要那个。否则你能告诉我们你的视图层次图吗?
    • 是的,如果我删除 pop to VC 行,它只会加载我关闭导航控制器时的最后一个视图
    • 另外,我有一个在viewDidLoad 中调用的方法,用于呈现的第一个模态VC。然而,这只是在我第一次呈现模态视图时被调用,如果我再次呈现它就不会发生,等等。我认为这个问题是相关的。
    【解决方案2】:

    对不起,如果我把你的问题简单化了,但如果你需要直接跳回第一个视图控制器,也许你可以试试popToRootViewControllerAnimated: 方法而不是popToViewController:

    【讨论】:

      【解决方案3】:

      我不确定您发布的关闭代码有什么问题,但以下应该可以工作:

      - (void)showModalView
      {
          self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
          [self.optionsNavController popToRootViewControllerAnimated:NO];
          [self.navigationController presentModalViewController:self.optionsNavController animated:YES];
      }
      

      另外,viewDidLoad 仅在每次加载视图时调用一次,viewWillAppeara

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-30
        • 2014-11-07
        • 2011-04-24
        • 1970-01-01
        相关资源
        最近更新 更多