在iPad中以模态显示视图并在iPhone中推送

时间:2018-10-01 06:52:40

标签: ios uiview uiviewcontroller

UIViewController必须在iPad中以模态呈现,而在iPhone中应以相同的方式呈现。苹果默认情况下对它的支持吗?

2 个答案:

答案 0 :(得分:0)

您必须检测设备并相应地执行任务。

if UIDevice.current.userInterfaceIdiom == .pad {
    //present modally
} else if UIDevice.current.userInterfaceIdiom == . phone {
    //push
}

答案 1 :(得分:0)

如前所述,您将需要手动执行此操作。您可以检查拥有的设备,并决定如何显示视图控制器。

但这通常会产生很大的问题,并且会大大增加应用程序的复杂性。由于在一种情况下您正在演示,而在另一种情况下您在推动视图控制器,因此您还需要弹出或关闭它。可以通过添加一些额外的属性来轻松解决此问题,但是稍后,当您要关闭整个导航堆栈或类似的内容时,它可能会再次干扰。更不用说深度链接的问题了。

因此,如果可能,我将尽量避免根据设备使用不同的视图控制器层次结构。如果可能的话,我将尝试简单地更改动画(我想这就是您所需要的)。也许this会有所帮助。

相关问题