Iphone 是否使用类方法访问UIView?
我有两个视图控制器AViewController和BViewController作为示例。我想在第一个AViewController的第二个BViewController中添加一个UI元素。我想我会通过class方法实现这一点,但是当从AViewController调用UIView时,它在BViewController的class方法中是不可访问的 BViewController的实现 +(无效)添加该按钮{ UIButton*btn=。。。。。。Iphone 是否使用类方法访问UIView?,iphone,objective-c,uiview,Iphone,Objective C,Uiview,我有两个视图控制器AViewController和BViewController作为示例。我想在第一个AViewController的第二个BViewController中添加一个UI元素。我想我会通过class方法实现这一点,但是当从AViewController调用UIView时,它在BViewController的class方法中是不可访问的 BViewController的实现 +(无效)添加该按钮{ UIButton*btn=。。。。。。 [self.view addSubview:b
[self.view addSubview:btn];//您需要在BViewController中创建一个函数 在BViewController.h中
UIButton *btnB;
-(void)passButtonFromA:(UIButton *)btn;
在BViewController.m中
-(void)passButtonFromA:(UIButton *)btn{
btnB = btn;
}
-(void)viewWillAppear:(BOOL)animated{
[self.view addSubView:btnB];
}
BViewController *bViewController =[[BViewController alloc]initWithNibName:.. ...]; //allocated bViewController using your nib file
[bViewController passButtonFromA:btnA];
[self.navigationViewController pushViewController:bViewController animated:YES];
在AViewController.m中
-(void)passButtonFromA:(UIButton *)btn{
btnB = btn;
}
-(void)viewWillAppear:(BOOL)animated{
[self.view addSubView:btnB];
}
BViewController *bViewController =[[BViewController alloc]initWithNibName:.. ...]; //allocated bViewController using your nib file
[bViewController passButtonFromA:btnA];
[self.navigationViewController pushViewController:bViewController animated:YES];
简单回答:“+”方法是静态方法,“self”指的不是实例而是类,因此self.view没有意义
如果您更改为“-”方法,并以某种方式在AViewController中获取BViewController实例的地址,并在调用中使用该地址,则基本方案将起作用(需要注意几点)
我想我会通过class方法实现这一点,但是当从AViewController调用UIView时,它在BViewController的class方法中是不可访问的
这是因为没有
UIView
可访问。类方法独立于任何实例运行。如果要更新特定对象,则需要调用其实例方法之一。此方法是否需要改为类方法?-(void)passButtonFromA:(UIButton*)btn;