You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建自定义Segue?解决UIViewController以Pop Over弹出而非切换屏幕问题

解决视图控制器以Pop Over弹出而非全屏切换的问题

方法一:利用导航控制器Push切换

如果你的视图控制器处于UINavigationController栈中管理,直接用push方法实现屏幕切换:

@IBAction func buttonTapped(_ sender: UIButton) {
    let targetVC = YourTargetViewController() // 替换为你的目标视图控制器类
    navigationController?.pushViewController(targetVC, animated: true)
}

方法二:全屏Present视图控制器

如果没有导航控制器,通过present方式强制全屏展示:

@IBAction func buttonTapped(_ sender: UIButton) {
    let targetVC = YourTargetViewController()
    // 设置全屏模态样式
    targetVC.modalPresentationStyle = .fullScreen
    present(targetVC, animated: true)
}

排查Pop Over出现的原因

  • 若用Storyboard配置Segue:检查按钮关联的Segue样式是否为Present As Popover,改成Show(Push)或者Present Modally(并在Segue属性里将Presentation设为Full Screen)
  • 若用代码配置弹出:确认是否误设置了popoverPresentationController的sourceView、sourceRect等属性,这些是Pop Over的专属配置,移除后即可正常全屏切换

内容的提问来源于stack exchange,提问作者Kaleb Zimmerman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:45:35