您好我正在尝试将view controller
添加为child view
。然后删除此view controller
表单父视图。我正在使用以下代码。
self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self.view addSubview:self.loginView.view];
此代码适用于iOS8
,但在iOS7
中,此代码无效,显示屏幕的一半。显示半部分登录。
这可能是什么解决方案?
答案 0 :(得分:8)
在主视图(在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];
如果您不添加最后一行,您的子视图控制器将不会收到事件。通过使用此代码,您可以同时在父视图控制器和子视图控制器中接收事件。
答案 1 :(得分:0)
将UIViewController
添加为subView
并非我认为的标准编程,UIViewController
旨在处理屏幕上的完整视图。您应该创建自定义UIViewController
,然后使用UIView
来获得您想要的任何结果,而不是向UIView
添加UIView
。
编辑:使用XIB创建自定义UIView。