我正在以编程方式执行所有操作。不使用 Storyboard。
我的屏幕底部有一个导航栏(类似于标签栏,但是是定制的),有 5 个选项。单击每个导航选项时,我想呈现一个不同的 View Controller 。但是,我不希望显示的 View Controller 覆盖底部的导航栏。
例如:我有一个可以按下的设置按钮。我还有一个 SettingsViewController 文件。当用户点击“设置”按钮时,我会这样做
let settingsViewController = SettingsViewController()
settingsViewController.modalPresentationStyle = .OverCurrentContext
self.presentViewController(SettingsViewController(), animated: false, completion: nil)
但这会以新 View 覆盖我的整个屏幕。当我将这个新 View 的颜色更改为 UIColor.clearColor() 时,我仍然可以在底部看到我的导航栏,但我无法与其交互(新 View 位于它的顶部)。
我试图通过放置更改我的 SettingsViewController View 的框架,使其不会覆盖整个屏幕
self.view.frame = CGRectMake(0,0,width,height-100)
在我的 SettingsViewController 中的 viewDidLoad() 中。但是 View 仍然覆盖整个屏幕!
我希望我的 SettingsViewController 仅从屏幕的 [top to 100px from bottom] 区域显示。我希望我的导航栏保留在屏幕底部 100px 的位置。我该怎么做?
最佳答案
想通了:)
当我需要做的只是将 SettingsViewController 中的 View 添加为 subview 时,我试图展示我的新 SettingsViewController。
解决的办法是
self.view.addSubview(settingsViewController.view)
关于ios - 如何在我当前的 UIViewController 之上呈现一个 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36416202/