在页面 ViewController 中显示模式 ViewController

Display Modal ViewController in PageViewController

我的应用程序中有一个基于 PageViewController 的母版页。在该母版页上,我有一个侧边栏,为用户提供选项。其中一个选项是显示有关应用程序的 "About" 信息。当用户单击侧栏中的关于按钮时,我想将我的 AboutViewController 显示为模态。看来我所有的链接都是正确的,但是当我单击侧边栏中的关于菜单选项时,整个屏幕都变黑了(这是背景颜色或我的 AboutViewController)并且我的 AboutViewController 中的内容 none 是可见。

这是我的 PageViewController 的代码。突出显示的代码是显示模态视图控制器的代码。

这是我要显示的关于视图控制器场景的屏幕显示。

点击“关于”按钮之前应用程序的屏幕截图在哪里:

这是单击“关于”按钮的方式:

这是我点击关于按钮后得到的:

关于我做错了什么有什么建议吗?

更新:根据提供的评论,我更新了我的代码,但我仍然遇到同样的问题。

            gobj_sideBar.showSideBar(false)
            iobj_AboutViewController = AboutViewController()
            iobj_AboutViewController?.iobj_CloseAboutInfoDelegate = self
            iobj_AboutViewController!.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
            // Cover Vertical is necessary for CurrentContext
            iobj_AboutViewController!.modalPresentationStyle = .CurrentContext
            // Display on top of    current UIView
            self.presentViewController(iobj_AboutViewController!, animated: true, completion: nil)

此外 - 我不相信会显示空白页面,因为我的关于视图控制器的代码中确实有以下代码行,它关闭了状态栏并且状态栏在单击关于按钮时显示的场景。

    override func prefersStatusBarHidden() -> Bool {

    return true;
}

好的,所以我按照建议改用模态转场,这基本上很管用。我现在面临的唯一挑战是我希望“关于视图控制器”显示为小型弹出式视图,但它却占据了整个屏幕,如下所示:

这些是我为我的关于视图控制器设置的属性。知道我应该如何更改它以便视图以弹出类型 window 出现,其中背景变灰但关于视图不会占据整个屏幕吗?

我没有足够的经验来判断哪里出了问题,但我发现了您的代码中的一些错误:

  • modalTransitionStyle 和 modalPresentationStyle 将在呈现的视图控制器上设置,而不是在呈现上设置。

  • 您实例化一个 AboutViewController,保存对它的引用并将 self 设置为它的委托,但是在调用 presentViewController(...) 时您实例化另一个 AboutViewController

还要考虑到黑色不是“关于”场景的背景颜色,而是空白屏幕的颜色。

如果我是你,我也会对场景使用 segue,这样不容易出错。而不是委托关闭关于视图控制器,尝试展开 segue。