使用IB创建的对象/控件是否可以从类方法访问?
@Nekto:
@interface CopyController : UIViewController
{
UIActivityIndicatorView *myActivity;
}
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivity;
+(void) activityIndicator:(BOOL)flag;
@end
不允许在.m中执行此操作,错误是“类方法中访问的实例变量'myActivety'”。
+(void)activityIndicator:(BOOL)flag
{
if (flag)
[myActivity startAnimating];
else
[myActivity stopAnimating];
}
答案 0 :(得分:1)
是的,它们是可访问的。
您应添加@property IBOutlet ib_object_class *ib_object_name;
,在IB中打开该对象设置,并在下拉菜单中选择File's Owner
,将参考插座设置为ib_object_name
。
可以找到完整的解释,例如:Creating and Connecting an Outlet
答案 1 :(得分:0)
您可以将插座连接到第一响应者而不是文件的所有者来实现此目的,但我不认为您可以从类方法中访问它,因为您的IBOutlet属性将是一个实例 - 等级变量。
找到类似的内容,将动作与多个第一响应者here.
相关联