在ios中添加视图控制器作为子视图

嗨,我想添加一个view controller作为child view 。 后来删除这个view controllerforms父视图。我使用下面的代码为此目的。

  self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"]; [self.view addSubview:self.loginView.view]; 

此代码适用于iOS8但在iOS7此代码不起作用,显示屏幕的一半。显示半部分login。

什么可能是这个解决scheme?

在你想要添加和显示你的子视图控制器的主视图(在XIB中)添加一个自定义的UIView对象。 让contentView是该视图的名称。 使用以下代码添加子视图控制器:

 self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"]; [self addChildViewController:self.loginView]; [self.loginView.view setFrame:CGRectMake(0.0f, 0.0f, self.contentView.frame.size.width, self.contentView.frame.size.height)]; [self.contentView addSubview:self.loginView.view]; [self.loginView didMoveToParentViewController:self]; 

如果你不添加最后一行,你的子视图控制器将不会收到事件。 通过使用此代码,您可以同时在父视图控制器和子视图控制器中接收事件。

添加一个UIViewController作为一个子subView不是标准的编程我相信, UIViewController是用来处理屏幕上的一个完整的视图。 而不是添加一个UIViewController到你的UIView你应该创build一个自定义的UIView ,然后使用该UIView来实现你想要的任何结果。

编辑:使用XIB创build一个自定义的UIView。