我试图在应用程序中添加一个UIView。它确实起作用,但不是我期望的那样。我在头文件中定义了socialActionView,并在我的视图控制器中进行了@synthesize。
当用户选中按钮时,nib文件被加载。我认为我必须调用addSubview方法来显示视图。但即使我不这样做,它也会显示出来。
如果我无论如何调用addSubView方法,当我加载视图并收到“warning: Unable to restore previously selected frame.”消息时,应用程序会崩溃。
有人能解释一下这里发生了什么吗?我不明白。
当用户选中按钮时,nib文件被加载。我认为我必须调用addSubview方法来显示视图。但即使我不这样做,它也会显示出来。
如果我无论如何调用addSubView方法,当我加载视图并收到“warning: Unable to restore previously selected frame.”消息时,应用程序会崩溃。
有人能解释一下这里发生了什么吗?我不明白。
- (IBAction)didTapOkSocialAction:(id)sender;
{
self.socialActionView = [[[NSBundle mainBundle] loadNibNamed:@"SocialActionViewController" owner:self options:nil] objectAtIndex:0];
//[self.view addSubview:socialActionView];
}
编辑
在这种情况下,解决方案是将SocialActionViewController.xib文件的所有者设置为ViewController.h。我还不知道如何将从NIB中附加到另一个视图控制器类的UIView添加到加载视图的视图控制器之外。
hidden
属性设置为YES
,当用户点击按钮时再取消隐藏。但这取决于你的应用程序结构和层次结构,所以我无法确定。 - Rok Jarc