Ios 以编程方式在其他视图的基础上显示ViewController

Ios 以编程方式在其他视图的基础上显示ViewController,ios,swift,Ios,Swift,我有以下代码,它显示了我的viewcontroller,而不是现有的viewcontroller: let frameworkBundle = NSBundle(identifier: "me.app.MyFramework") var storyBoard:UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: frameworkBundle) var vc = storyBoard.instantiateInitialViewCo

我有以下代码,它显示了我的viewcontroller,而不是现有的viewcontroller

let frameworkBundle = NSBundle(identifier: "me.app.MyFramework")
var storyBoard:UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: frameworkBundle)

var vc = storyBoard.instantiateInitialViewController() as MyPresenterViewController

viewControllerToPresentIn.presentViewController(vc, animated: true, completion: nil)
但我想以编程方式在另一个视图的顶部显示viewcontroller


有什么想法吗?

如果你想让你的模态视图控制器被看到,尽管你必须给它的视图一个清晰的颜色背景。并将其
modalPresentationStyle
设置为
.OverCurrentContext

let vc = storyBoard.instantiateInitialViewController() as! MyPresenterViewController
vc.view.backgroundColor = .clearColor()
vc.modalPresentationStyle = .OverCurrentContext

viewControllerToPresentIn.presentViewController(vc, animated: true, completion: nil)

如果您使用navigationcontroller,则可以将ViewController更改为

    navigationController?.presentViewController(newVC, animated: true, completion: nil)

但是,由于显示不会从左侧或右侧显示视图,您将丢失导航控制器

我使用以下方法,以便仅在另一个视图控制器的底部显示我的视图:

var presenterStoryBoard:UIStoryboard = UIStoryboard(name: "MiniAppPanel", bundle: frameworkBundle)

var vc = presenterStoryBoard.instantiateInitialViewController() as MiniAppPanelViewController

vc.view.frame = CGRectMake(0, vc.view.frame.size.height - 120, vc.view.frame.size.width, 120)

publisherViewController.addChildViewController(vc)    
publisherViewController.view.addSubview(vc.view)

这段代码实际上似乎是在一个视图控制器上显示另一个视图控制器。你说“在顶部”是什么意思?它与“取而代之”有什么区别?@nkukushkin我的视图控制器只包含一个按钮,这就是我看到的,我看不到在ITI下的文章,如果你在警报级别上创建一个新窗口,并将你的控制器添加到该窗口中,当你按下该键时,它将位于屏幕上所有内容的顶部,包括当前的键盘。我还需要可触摸,这意味着我可以按下后面的视图控制器,有可能吗?我不知道如何覆盖hittest,这是我的UIVIEW的一种方法,意思是self.view。我如何重写它?你必须创建一个子类。然后用脚本中的按钮更改控制器根视图的类。谢谢,我用我选择使用的代码写了一个答案,谢谢你的帮助!当我按照这个建议呈现它时,我无法看到它背后的视图。我显示的视图控制器背景为不透明或纯黑色,即使我将背景颜色设置为“清除”。