2

我通过 StoryBoard 将 UIButton 放在 UIVIewController 上。

在 xxxVIewController.h

@interface xxxViewController : UIViewController{

IBOutlet UIButton *But;
}
@property (retain, nonatomic) IBOutlet UIButton *But;

我想从另一个类访问“* But”来更改 UIButton 的 setimage。

我想如果我能得到 UIViewController 的实例,它就解决了.....

有没有人给我提示


谢谢他,Jasper Blues 我添加了评论。

一种是不包含导航控制器的 xxxViewController。它只包含四个按钮。

另一个是TimerClass(NSObject),它管理应用程序的时间。

TimerClass 类有定时器。我想要做的是每隔几秒钟从 TimerClass 更改 xxxViewController 上的按钮颜色。

我可以轻松访问 TimerClass 方法。因为 xxxViewController 有 TimerClass 实例。

但是 xxxViewController 是自动生成的,所以我不知道如何从 TimerClass 中获取 xxxViewController 实例。

4

2 回答 2

1

没错,声明了属性后,您需要一个指向 xxxViewController 的指针,该指针来自将要进行更新的类。

如果它在 UINavigationController 中,您可以从那里访问它。否则(我试图保持这个简单,以防你刚刚开始)你可以把它放在例如 AppDelegate 上。

于 2013-01-15T00:58:42.610 回答
1

我会设置xxxVIewController为代表TimerClass,当您创建TimerClass实例时,将代表设置为self.

IE:

self.timer = [[TimerClass alloc] init];
self.timer.delegate = self;  // This assumes that you have already created a declared property called delegate in your `TimerClass` class

然后,当需要更新按钮时,您应该调用一个委托函数xxxVIewController并让它更新自己的按钮:

// Or whatever method that you want called
if (self.delegate respondsToSelector(@selector(changeButtonColor)))
{
    [self.delegate changeButtonColor];
}

如果您不熟悉协议,请阅读协议,您将看到以更通用的方式实现此功能的好方法。

于 2013-01-15T05:20:08.963 回答