Iphone 是否使用类方法访问UIView?

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

我有两个视图控制器AViewController和BViewController作为示例。我想在第一个AViewController的第二个BViewController中添加一个UI元素。我想我会通过class方法实现这一点,但是当从AViewController调用UIView时,它在BViewController的class方法中是不可访问的

BViewController的实现 +(无效)添加该按钮{ UIButton*btn=。。。。。。
[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;