在ios中添加视图控制器作为子视图
嗨,我想添加一个view controller
作为child view
。 后来删除这个view controller
forms父视图。我使用下面的代码为此目的。
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。