首页 > 解决方案 > Xcode 11.1 查看控制器在当前 VC 下可见时以模态方式呈现

问题描述

Xcode 自动更新,现在我的注册屏幕视图控制器显示在我转换到的当前视图控制器下方。查看屏幕截图我该如何解决这个问题?

如果我使用 Interface Builder 创建一个 segue 并以模态方式选择 present,当我运行应用程序时,我现在将看到当前屏幕下方的前一个屏幕。在更新之前,这从来都不是问题。(我在整个应用程序中使用相同的背景,所以我的大部分视图控制器背景都设置为透明。)

另外,我认为这是相关的,当我在 Xcode 中查看我的情节提要并设置为使用 iPhone 8 Plus 时,它会显示一个以前不存在的浅灰色圆角矩形。查看故事板布局 当我运行应用程序时,我的大多数视图控制器现在都被限制在这个形状上,不再是全屏的。在此处查看此示例 我的设置视图控制器使用白色背景,因此您可以更轻松地看到我在说什么。这个 VC 曾经是全屏的,没有向下移动,顶部是圆角的。有任何想法吗?

Xcode 11.1 针对 iOS 12.1

标签: xcodeinterface-buildersegueviewcontrollerpresentmodalviewcontroller

解决方案


在 iOS 13 中,如果您有任何故事板 segue,请转到故事板,您需要将kind属性设置为Present Modally并将Presentation 属性设置为Full Screen

对于以编程方式使用Swift

let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen 
self.present(vc, animated: true, completion: nil)

对于Objective-C

UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [story instantiateViewControllerWithIdentifier:@"identifier"];
vc.modalPresentationStyle = UIModalPresentationFullScreen ;
[self presentViewController:vc animated:YES completion:nil];

推荐阅读