从另一个标签返回后,View Controller变黑

时间:2019-01-09 05:46:17

标签: swift tabs segue viewcontroller unwind-segue

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

我有以下流程:

  1. 具有5个标签的标签栏。
  2. 一个名为Points的视图控制器,其中包含一个名为“ Rewards”的按钮,可以与另一个名为Rewards的视图控制器进行交互。 一种。还有一个名为“积分”的按钮,什么也不做。 b。点视图控制器设置为“定义上下文” C。 segue设置为模态呈现,并且呈现设置为Current Context。 d。还有一个名为backFromRewards的segue函数,可用于展开。
  3. “奖励”视图控制器还具有一个名为“点”的按钮,该按钮设置为通过名为backFromRewards的segue函数退回到“点”视图控制器。

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

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

  1. 从“点”视图控制器中,选择“奖励”按钮。这会弹出“奖励”视图控制器。
  2. 然后我转到其他选项卡。
  3. 我回到原始标签。奖励视图控制器仍然显示。
  4. 然后单击“点”按钮,该按钮设置为退回到点视图控制器。
  5. 这是我黑屏的时候。
  6. 然后我可以在其他位置进行制表,然后再制回到视图控制器点,它会刷新回正常状态,摆脱黑屏。

我有点理解为什么屏幕变黑。但是,有没有一种方法可以在按下Tab键时重新加载并重置整个ViewController?也许这将摆脱黑屏。否则,除了模态显示以使选项卡栏消失之外,还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

好的,我想我已经知道了。

我将此添加到了“奖励”视图控制器中:

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

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

  1. 从Points View Controller中,单击Rewards按钮,然后将我带到Rewards View Controller。
  2. 然后我转到另一个选项卡,然后再回到Tabs View Controller。
  3. 现在,这将重新加载Points View Controller。

答案 1 :(得分:0)

通过转到“属性”检查器,尝试设置所显示控制器的modalPresentationStyle,即Rewards ViewController

enter image description here