在ios中将视图控制器添加为子视图
您好,我正在尝试添加一个在ios中将视图控制器添加为子视图,ios,objective-c,ios7,ios8,Ios,Objective C,Ios7,Ios8,您好,我正在尝试添加一个视图控制器作为子视图。然后从父视图中删除此视图控制器 self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"]; [self.view addSubview:self.loginView.view]; 此代码适用于iOS8,但在iOS7中,此代码不起作用,它显示屏幕的一半。显示一半登录 这个问题的解决方案是什么?将UIViewController添加为子视图
视图控制器
作为子视图
。然后从父视图中删除此视图控制器
self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self.view addSubview:self.loginView.view];
此代码适用于iOS8
,但在iOS7
中,此代码不起作用,它显示屏幕的一半。显示一半登录
这个问题的解决方案是什么?将UIViewController
添加为子视图
不是标准编程,我相信,UIViewController
旨在处理屏幕上的完整视图。与其将UIViewController
添加到UIView
中,不如创建一个自定义UIView
,然后使用该UIView
来实现您想要的任何结果
编辑:使用XIB创建自定义UIView。添加UIViewController
作为子视图
不是标准编程,我相信,UIViewController
旨在处理屏幕上的完整视图。与其将UIViewController
添加到UIView
中,不如创建一个自定义UIView
,然后使用该UIView
来实现您想要的任何结果
编辑:使用XIB创建自定义UIView。在主视图(在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];
如果不添加最后一行,子视图控制器将不会接收事件。通过使用此代码,您可以同时在父视图控制器和子视图控制器中接收事件 在主视图(在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];
如果不添加最后一行,子视图控制器将不会接收事件。通过使用此代码,您可以同时在父视图控制器和子视图控制器中接收事件 我已经设计了来自故事板的视图,因此我可以解释为什么我要将视图控制器添加为子视图是的,但是您可以使用与故事板相同的方式在Xibs中创建自定义视图。您只需将UIView类分配给xib,然后创建该类的实例。我已经设计了“从故事板”视图,因此我解释了为什么要将视图控制器添加为子视图。是的,但您可以在xib中创建自定义视图,与在故事板中创建视图的方式相同。您只需将UIView类分配给xib,然后创建该类的实例。我有一个问题要问你们。如何在加载子视图之前或之后将数据(字符串或int)传递给子视图。谢谢..我真的不明白你为什么编辑这篇文章,这段代码是不可读的。您正在调用UIViewController视图,这会使代码非常混乱。我希望你在现实生活中不是这样编码的。我使用的名称与前面提到的相同。我在现实生活中从未使用过这些命名约定:)我有个问题要问你们。如何在加载子视图之前或之后将数据(字符串或int)传递给子视图。谢谢..我真的不明白你为什么编辑这篇文章,这段代码是不可读的。您正在调用UIViewController视图,这会使代码非常混乱。我希望你在现实生活中不是这样编码的。我使用的名称与前面提到的相同。我在现实生活中从未使用过这些命名约定:)