2012-11-11 61 views
0

我有一个从nib文件加载自定义视图的代码,但该自定义视图的变量存在问题。从nib文件加载自定义视图

- (id)initWithFrame:(CGRect)frame 
{ self = [super initWithFrame:frame]; 
if (self) { 
    // Initialization code 
    HomeMainView* views = (HomeMainView*)[[[NSBundle mainBundle] loadNibNamed:@"HomeMainView" owner:self options:nil] objectAtIndex:0]; 
    [self release]; 

    NSArray* permission = [NSArray arrayWithObjects:@"user_photos",@"publish_stream", nil]; 

    FBLoginView* fbLogin = [[[FBLoginView alloc] initWithPublishPermissions:permission defaultAudience:FBSessionDefaultAudienceFriends] autorelease]; 


    [views.FBLogin addSubview:fbLogin]; 
    [views.homeButton setTitle:@"asdf" forState:UIControlStateNormal]; 

    self = views; 

} 
return self; 
} 

我想将fbLogin添加到由Nib文件生成的视图对象。问题是views.FBLogin生成错误,说无法识别的选择器。

有人知道这里有什么问题吗?

+0

什么是错误输出? – foggzilla

+0

[UIView FBLogin]:无法识别的选择器发送到实例0x6e80be0 2012-11-11 18:36:40.153 xxx [1145:16803] ***终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [UIView FBLogin] :无法识别的选择器发送到实例0x6e80be0'这是它产生的错误 ***一次调用堆栈: ( – LittleFunny

+0

你确定'views'实际上是一个HomeMainView的实例,并且你的HomeMainView implm。有一个getter一个FBLogin视图? – foggzilla

回答

0

确保您已在界面构建器中为该视图设置了自定义类。选择视图并按cmd +选项+ 3并设置自定义类。

1

我有同样的问题,但它是因为我需要把它添加到我的应用程序委托didFinishLaunchingWithOptions:

[FBLoginView class] 

没有这个UIView的是一个UIView不是一个FBLoginView,因此无法识别的选择。

+0

这应该被标记为正确的! –

相关问题