Segue问题:新建视图控制器无法完全替换旧视图控制器
修复跳转后原页面透出问题
方案1:调整Storyboard Segue参数(无需编码)
- 选中主菜单到计算器页面对应的Segue,打开右侧属性检查器面板
- 若Segue的Kind为
Present Modally,将Presentation选项从默认的Automatic/Page Sheet修改为Full Screen - 若Segue的Kind为
Show(Push跳转),检查导航控制器是否开启了导航栏透明效果,不需要可直接关闭 - 最后确认计算器页面的根View背景色设置为不透明的纯色,不要使用带透明度的颜色或clearColor
方案2:直接替换根控制器(彻底移除主菜单,无需返回场景适用)
如果不需要从计算器页面返回主菜单,可以直接替换Window根控制器完全销毁主菜单实例:
// Swift 实现 guard let calculatorVC = storyboard?.instantiateViewController(withIdentifier: "CalculatorVC") as? 你的计算器控制器类 else { return } UIApplication.shared.windows.first?.rootViewController = calculatorVC
// Objective-C 实现 YourCalculatorVC *calculatorVC = [self.storyboard instantiateViewControllerWithIdentifier:@"CalculatorVC"]; UIApplication.sharedApplication.windows.firstObject.rootViewController = calculatorVC;
方案3:导航栈内替换(保留导航能力场景适用)
如果使用UINavigationController作为容器,希望保留导航栏能力但移除栈内的主菜单:
// Swift 实现 guard let calculatorVC = storyboard?.instantiateViewController(withIdentifier: "CalculatorVC") as? 你的计算器控制器类 else { return } navigationController?.setViewControllers([calculatorVC], animated: true)
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

