2011-09-07 67 views
0

使用IB创建的对象/控件是否可以从类方法访问?从类方法访问IB对象/控制

@Nekto:

@interface CopyController : UIViewController 
{ 
    UIActivityIndicatorView *myActivity; 
} 

@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivity; 
+(void) activityIndicator:(BOOL)flag; 

@end 

在.M此实现将不会被允许,错误是 “实例variable'myActivety”类方法访问”。

+(void)activityIndicator:(BOOL)flag 
{ 
    if (flag) 
     [myActivity startAnimating]; 
    else 
     [myActivity stopAnimating]; 
} 
+1

请花更多的时间与问这样的问题之前,苹果公司提供的文档。这是与IB合作的基础知识,如果你问这个问题,那么在继续进行项目之前,你需要继续阅读以真正学习该工具。 –

+0

@Phil他的问题是关于范围,而不是如何连接插座。 –

+0

@掘地掘金队:谢谢。 Phillip Regan:如果你感到满意,可以删除低年级! – user523234

回答

0

您可以到插座连接到第一个响应者,而不是文件的所有者来实现这一点,但我不认为你可以访问它来自类方法中,因为您的IBOutlet属性将成为实例级变量。

发现链接行动的多个第一反应类似here.

1

是的,他们是可访问的。

您应该添加@property IBOutlet ib_object_class *ib_object_name;,在IB中打开该对象设置,并通过在下拉菜单中选择ib_object_name将参考插口设置为File's Owner

完整的解释可以发现,例如,在这里:Creating and Connecting an Outlet

+0

我知道这个过程,我的问题是关于它是否可以在类方法中访问。那是我遇到问题的地方。当我实现即时方法或私有方法时,我可以访问这些IB对象,但在类方法中,它不可用。 – user523234

+0

然后正确描述你的问题,发布代码,描述错误。我回答了你目前的问题:是的,你可以。 – Nekto

+1

请参阅我对原始问题的编辑。我无法将代码粘贴到此评论中。 – user523234