【问题标题】:View controller goes black after returning from another tab从另一个选项卡返回后视图控制器变黑
【发布时间】:2019-01-09 05:46:17
【问题描述】:

从其他选项卡返回视图控制器时出现黑屏。

我有以下流程:

  1. 带有 5 个标签的标签栏。
  2. 一个名为 Points 的视图控制器,其中包含一个名为“Rewards”的按钮,该按钮连接到另一个名为 Rewards 的视图控制器。 一种。还有一个名为“Points”的按钮,它什么也不做。 湾。点视图控制器设置为“定义上下文” C。 segue 设置为模态演示,演示设置为当前上下文。 d。还有一个名为 backFromRewards 的 segue 函数,用于放松。
  3. Rewards 视图控制器还有一个名为“Points”的按钮,该按钮设置为通过名为 backFromRewards 的 segue 函数返回到 Points 视图控制器。

上述设置的目标是始终显示标签栏,即使奖励视图控制器是模态显示的。到目前为止,这有效。选项卡栏确实总是可见的,我可以通过分别按下“积分”和“奖励”按钮在“积分”和“奖励”视图控制器之间切换。我也可以根据需要切换到其他选项卡。

但是,当我执行以下操作时会出现黑屏:

  1. 从积分视图控制器中,我选择了奖励按钮。这会调出奖励视图控制器。
  2. 然后我切换到另一个选项卡。
  3. 我回到原来的标签。奖励视图控制器仍会显示。
  4. 然后我单击“点”按钮,该按钮设置为展开回点视图控制器。
  5. 这是我黑屏的时候。
  6. 然后我可以在其他地方使用 tab,然后 tab 回到点视图控制器,它会刷新恢复正常,摆脱黑屏。

我有点明白为什么屏幕变黑了。但是,有没有办法在按下选项卡按钮时重新加载和重置整个视图控制器?也许这将摆脱黑屏。否则,除了模态呈现让标签栏消失,还有其他方法吗?

【问题讨论】:

  • 如果你从PointsVC -> 奖励按钮 -> 积分按钮没有点击不同的标签,它仍然显示黑屏吗?
  • Mocha...不,可以,而且没有黑屏。

标签: swift tabs segue viewcontroller unwind-segue


【解决方案1】:

好吧,我想我已经弄清楚了。

我将此添加到我的奖励视图控制器中:

override func viewWillDisappear(_ animated: Bool) {
    self.dismiss(animated: true, completion: nil)
    super.viewWillAppear(true)
}

这会重置视图控制器,如下所示:

  1. 在积分视图控制器中,我单击奖励按钮,然后它会将我带到奖励视图控制器。
  2. 然后我转到另一个选项卡,然后返回到点视图控制器。
  3. 现在,这会重新加载点视图控制器。

【讨论】:

    【解决方案2】:

    尝试通过转到 Attributes Inspector 设置呈现控制器的 modalPresentationStyle,即 Rewards ViewController

    【讨论】:

      猜你喜欢
      • 2016-11-09
      • 2016-12-11
      • 2012-01-05
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多