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

Tar*_*rma 1 objective-c ios ios7 ios8

嗨,我想添加一个view controller作为child view.然后删除此view controller表单父视图.我正在使用以下代码来实现此目的.

 self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
 [self.view addSubview:self.loginView.view];
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常iOS8但是在iOS7这段代码中它不起作用它显示了屏幕的一半.显示了半部分登录.

有什么可以解决这个问题?

Sal*_*idi 9

UIView在主视图(在XIB中)中添加要添加的自定义对象并显示子视图控制器.我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]; 
Run Code Online (Sandbox Code Playgroud)

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

  • 我使用的名称与所提到的名称相同。我从来没有在现实生活中使用这些命名约定。.:) (2认同)