运行循环将颜色设置为按钮ios?

时间:2014-08-21 08:30:41

标签: ios objective-c xcode nsrunloop

我的ios应用程序遇到了一些问题。它处理Apple推送通知(APN)和一切但是,我的应用程序处理它appDelegate.m

问题是,如果用户有通知,我想创建一个按钮来改变颜色,所以我搜索了一种方法来做到这一点我找到了“Run Loop”,这是否可能在一个辅助线程中有一个Run Loop如果有新通知,无限检查? (每次验证之间等待5/10秒)我真的不知道如何宣布它既不能单独使用它。 (我对xCode很新,并且对应用程序的其余部分使用AFNetworking异步方法,所以我对线程和co不太好。)

如果有人能够给我一种在我的应用程序中实现简单运行循环的方法,那真的很棒。

谢谢!

编辑:我有一个用户个人资料的白色按钮,我希望它在用户收到通知时更改为红色,该按钮已经声明并在viewController中工作,但我无法将其链接到appDelegate,这就是为什么我要求做一个可以处理appDelegate发送的BOOL的RunLoop,我的视图只在viewDidLoad中执行(当应用程序在后台等时不能正常工作......)

1 个答案:

答案 0 :(得分:1)

我真的不明白为什么你需要一个Run循环?

您可以使用NSNotificationCenterhttps://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsnotificationcenter_Class/Reference/Reference.html

<强> AppDelegate.m

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"didRecieveNotification" object:nil userInfo:userInfo];
    }

}

添加按钮作为观察者的ViewController:

- (void)viewDidLoad {
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"didRecieveNotification" object:nil];
}

-(void)handleNotification:(NSNotification *)notification
{
    YourButton.backgroundColor = [UIColor redColor];
}