Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS 13中按下UIViewController会使其与状态栏重叠_Ios_Swift_Iphone_Xcode_Ios13 - Fatal编程技术网

在iOS 13中按下UIViewController会使其与状态栏重叠

在iOS 13中按下UIViewController会使其与状态栏重叠,ios,swift,iphone,xcode,ios13,Ios,Swift,Iphone,Xcode,Ios13,请注意,此项目是在Xcode 10中创建的。我最近升级到了Xcode 11,这就发生了。 我有一个UINavigationController,它可以推送视图控制器。 初始视图控制器看起来正常。但当我通过按下另一个视图控制器切换到另一个视图控制器时,第二个视图控制器与状态栏重叠。这只发生在iOS 13中。 我在模拟器上测试。使用Xcode 11 导航栏的可见性被隐藏 将演示文稿设置为全屏或当前上下文具有相同的结果。它似乎超出了安全区域,但我将其设置为低于安全区域 我使用以下方式进行转换: sel

请注意,此项目是在Xcode 10中创建的。我最近升级到了Xcode 11,这就发生了。

我有一个UINavigationController,它可以推送视图控制器。 初始视图控制器看起来正常。但当我通过按下另一个视图控制器切换到另一个视图控制器时,第二个视图控制器与状态栏重叠。这只发生在iOS 13中。 我在模拟器上测试。使用Xcode 11

导航栏的可见性被隐藏

将演示文稿设置为全屏或当前上下文具有相同的结果。它似乎超出了安全区域,但我将其设置为低于安全区域

我使用以下方式进行转换:

self.navigationController?.performsgue(带有标识符:“MyAlertssgue”,发送方:self)
这个项目是在Xcode 10中创建的。我在更新到Xcode 11后遇到了这个问题。 如果我在Xcode 11中创建一个新项目,似乎没有问题。我猜,我有一个迁移问题

以下是一些屏幕截图:

初始视图控制器:

视图控制器2:

情节提要设置:

Segue属性检查器:

视图控制器2属性检查器

更新 我所做的变通方法是将每个视图控制器嵌入到导航控制器中。它解决了这个问题,但过渡并不顺利,因为我无法推动导航控制器。我必须把它们呈现出来。我不知道为什么这会发生在iOS 13上

更新
我自己找到了答案。看看下面是否对你有帮助。

我找到了我自己问题的答案。 我尝试在Xcode 11中创建一个新项目,以查看与在Xcode 10中创建的项目相比的差异。 这些差异与仅在iOS 13中可用的UISceneSession有关。 我希望这个答案能帮助所有和我有同样问题的人

以下是区别:

  • AppDelegate.swift中的UI会话生命周期
    UISceneSession有几种方法。将这些行添加到
    AppDelegate.swift
//标记:UISceneSession生命周期
@可用(iOS 13.0,*)
func应用程序(uApplication:UIApplication,用于连接的配置SceneSession:UISceneSession,选项:UIScene.ConnectionOptions)->UISceneConfiguration{
//在创建新场景会话时调用。
//使用此方法可以选择配置以创建新场景。
返回UISceneConfiguration(名称:“默认配置”,会话角色:ConnectionSceneSession.role)
}
@可用(iOS 13.0,*)
func应用程序(application:UIApplication,didDiscardSceneSessions sceneSessions:Set){
//当用户放弃场景会话时调用。
//如果在应用程序未运行时丢弃了任何会话,则将在application:didFinishLaunchingWithOptions后不久调用该会话。
//使用此方法释放特定于被丢弃场景的任何资源,因为它们不会返回。
}
  • 斯威夫特美术馆
这是要创建的新类

导入UIKit
@可用(iOS 13.0,*)
类SceneDelegate:UIResponder,UIWindowSceneDelegate{
变量窗口:UIWindow?
func场景(场景:UIScene,willConnectTo会话:UISceneSession,选项connectionOptions:UIScene.connectionOptions){
//使用此方法可以选择性地配置UIWindow`window`并将其附加到提供的UIWindowScene`scene`。
//如果使用情节提要,“窗口”属性将自动初始化并附加到场景。
//此委托并不意味着连接的场景或会话是新的(请参见'application:ConfigurationForConnectionSceneSession'。
guard let=(场景为?UIWindowScene)else{return}
}
func sceneDidDisconnect(场景:UIScene){
//调用,因为系统正在释放场景。
//这会在场景进入背景后不久发生,或者在其会话被放弃时发生。
//释放与此场景关联的所有资源,这些资源可以在下次场景连接时重新创建。
//场景稍后可能会重新连接,因为它的会话没有必要被丢弃(请参见“应用程序:DidDiscardScenessessions”)。
}
func sceneDidBecomeActive(u场景:UIScene){
//当场景从非活动状态移动到活动状态时调用。
//使用此方法可重新启动场景处于非活动状态时暂停(或尚未启动)的所有任务。
}
func sceneWillResignActive(u场景:UIScene){
//当场景从活动状态移动到非活动状态时调用。
//这可能是由于临时中断(如来电)造成的。
}
func scenewillenterforment(u场景:UIScene){
//当场景从背景过渡到前景时调用。
//使用此方法可以撤消在进入背景时所做的更改。
}
func sceneDidEnterBackground(u场景:UIScene){
//当场景从前景过渡到背景时调用。
//使用此方法可以保存数据、释放共享资源并存储足够的场景特定状态信息
//将场景恢复到其当前状态。
}
}
  • 最后,将其添加到Info.plist
UIApplicationSceneManifest
UISCeneConfiguration
UIWindowsCensessionRole应用程序
UISceneClassName
UISCenedLegateClassName
$(产品\u模块\u名称).SceneDelegate
UISCeneConfiguration名称
默认配置
UISCenestryBoardFile
主要
<key>UIApplicationSceneManifest</key>
    <dict>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UISceneClassName</key>
                    <string></string>
                    <key>UISceneDelegateClassName</key>
                    <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneStoryboardFile</key>
                    <string>Main</string>
                </dict>
            </array>
        </dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <false/>
    </dict>