我正在以编程方式完成所有工作。不使用故事板。
我的屏幕底部有一个导航栏(如标签栏,但是自定义),有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。我怎么能这样做?
答案 0 :(得分:1)
弄明白:)
当我需要做的只是将我的SettingsViewController中的视图作为子视图添加时,我试图呈现我的新SettingsViewController。
解决方案是
self.view.addSubview(settingsViewController.view)