ios – 我如何创建一个将在iPad上使用popover并推入iPhone上的导航堆栈的segue?

在我的应用程序中,某些视图控制器在iPad上(或者更具体地说,是一个常规的水平尺寸类)将它们作为弹出窗口显示是有意义的,但是在iPhone(或紧凑的水平尺寸类)上推送它是有意义的他们到导航堆栈上.有一种优雅的方式来支持这个吗?认情况下,如果我使用“Present as Popover”segue,它将在iPhone上以模态方式显示,这不是我想要的.

我找到了一种方法来获得我想要的行为,但它很难看,而且容易出错.我根据我目前所处的大小类选择两个不同的segue.为了支持iOS 9多任务处理,我实现[UIViewController willTransitionToTraitCollection:withTransitionCoordinator]并在弹出框和导航控制器之间手动移动视图控制器(这部分似乎特别容易出错).

似乎应该有一些简单的方法来实现自定义segue来处理这个,或者某种自定义自适应表示控制器,但我还是无法绕过它.有人做过这样的成功吗?

解决方法

据我说这是最简单的方法,

步骤1:从一个控制器到另一个控制器创建两个segue.
第2步:设置一个segue的segue属性来推送和弹出另一个
第3步:现在根据您的要求调用执行segue,即iPad或iPhone

这是a sample code

示例代码注意:将bool条件更改为false以检查didSelectRowAtIndexPath中的另一个条件.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...