如何在我当前的UIViewController之上呈现UIViewController?

时间:2016-04-05 02:41:15

标签: ios swift uiviewcontroller

我正在以编程方式完成所有工作。不使用故事板。

我的屏幕底部有一个导航栏(如标签栏,但是自定义),有5个选项。我想在单击每个导航选项时呈现不同的视图控制器。但是,我不希望显示的视图控制器覆盖底部的导航栏。

例如:我有一个可以按下的设置按钮。我还有一个SettingsViewController文件。当用户点击“设置”按钮时,我会

let settingsViewController = SettingsViewController()
settingsViewController.modalPresentationStyle = .OverCurrentContext
self.presentViewController(SettingsViewController(), animated: false, completion: nil)

但这会以新视图覆盖整个屏幕。当我将这个新视图的颜色更改为UIColor.clearColor()时,我仍然可以在底部看到我的导航栏,但我无法与它交互(新视图位于其上方)。

我试图改变我的SettingsViewController视图的框架,以便它不会覆盖整个屏幕

self.view.frame = CGRectMake(0,0,width,height-100)

在我的SettingsViewController中的viewDidLoad()中。但是视图仍然覆盖了整个屏幕!

我希望我的SettingsViewController只能从屏幕的[top to 100px from the bottom]区域显示。我希望我的导航栏保持在屏幕的底部100px。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

弄明白:)

当我需要做的只是将我的SettingsViewController中的视图作为子视图添加时,我试图呈现我的新SettingsViewController。

解决方案是

self.view.addSubview(settingsViewController.view)